Android addHeaderView исчезает, когда нет элементов в ListView

Я использую addHeaderView, чтобы добавить элемент вида в начало ListView. У меня также есть TextView, чтобы отобразить сообщение о том, что в списке нет элементов.

Вот макет:

<ListView android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"/>          

<TextView
    android:id="@android:id/empty"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:text="@string/list_empty"
    android:gravity="center"
    android:textAppearance="?android:attr/textAppearanceMedium" />

И код Java:

final ListView listView = getListView();
final View view = getLayoutInflater().inflate(R.layout.list_item_add,
            listView, false);
listView.addHeaderView(view, null, true);

Когда в ListView есть элементы, отображается заголовок, но если я удалю все элементы в списке (кроме заголовка), тогда заголовок не исчезнет.

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

Спасибо,

Ответ 1

Удалите представление @android:id/empty из вашего макета или переопределите/подклассифицируйте ваш адаптер, чтобы вернуть false из isEmpty()

Ответ 2

Из моего опыта (SDK версии 10):

Переключение isEmpty() в адаптере заставляет его работать.

Затем необязательно удалить представление @android: id/empty.