AddHeaderView не работает, когда список пуст

Я использую следующий макет (header.xml) для добавления заголовка в listview,

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/greetingContainer"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

<TextView
    android:id="@+id/categoryTitle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="header view"
    android:textColor="#FFFFFF"
    android:textSize="15sp" />

</LinearLayout>

а с другой стороны, я использую

View header = (View) getLayoutInflater().inflate(R.layout.header,null);
getListView().addHeaderView(header);

когда список пуст, он не работает, остается невидимым..

мой вопрос может быть дубликатом этого, но неспособным понять,
пожалуйста, помогите!

Ответ 1

Простое решение, все, что вам нужно сделать, - это ВСЕГДА установить адаптер для listview, даже если у вас нет данных для показа.

Ответ 2

Я использовал аналогичное представление заголовка, и он отлично подходит, когда в списке нет данных.

public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    view = inflater.inflate(R.layout.list, null);
    listView = (ListView) view.findViewById(R.id.listView1);

    if (listView.getHeaderViewsCount() == 0) {
        headerView = View.inflate(getActivity(), R.layout.listheader,     null);
        listView.addHeaderView(headerView, null, false);
    }
    return view;

}