#android
#Android
Вопрос:
у меня есть TabHost с 3 вкладками, каждая из которых содержит список, к которому я хочу прикрепить пустое представление, отображаемое, когда элементов не существует. Макет выглядит следующим образом:
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:padding="5dp">
<TabWidget android:id="@android:id/tabs"
android:layout_width="fill_parent" android:layout_height="wrap_content" />
<FrameLayout android:id="@android:id/tabcontent"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:padding="5dp">
<LinearLayout android:layout_height="fill_parent"
android:layout_width="fill_parent">
<ListView android:id="@ id/tab_all_list"
android:layout_width="fill_parent" android:layout_height="fill_parent"></ListView>
<ListView android:id="@ id/tab_call_list"
android:layout_width="fill_parent" android:layout_height="fill_parent">
</ListView>
<ListView android:id="@ id/tab_sms_list"
android:layout_width="fill_parent" android:layout_height="fill_parent">
</ListView>
<LinearLayout android:orientation="vertical"
android:id="@ id/empty_list_view" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:visibility="gone"
android:gravity="center">
<ImageView android:layout_width="wrap_content"
android:layout_height="wrap_content" android:background="@drawable/location_waternark"></ImageView>
<TextView android:text="@string/empty_action_list_text"
android:layout_width="wrap_content" android:layout_height="wrap_content">
</TextView>
</LinearLayout>
</LinearLayout>
</FrameLayout>
</LinearLayout>
</TabHost>
И в коде я устанавливаю пустое представление следующим образом для каждого ListView (показано один раз для краткости):
ListView listView = (ListView) findViewById(R.id.tab_all_list);
listView.setEmptyView(findViewById(R.id.empty_list_view));
Тем не менее, пустой вид не отображается, когда адаптер, подключенный к списку, не содержит элементов.
Имеет ли это какое-либо отношение к иерархиям представлений или чему-то еще?
Ответ №1:
Используйте android:id/empty
идентификатор для представления любого типа, как описано здесь .
Комментарии:
1. Я забыл упомянуть — я не использую ListActivity, потому что на самом деле это TabActivity, который содержит 3 ListViews — 1 для каждой вкладки. Является ли проблема с android: id / empty все еще актуальной в таком случае?
Ответ №2:
Кажется, что установка идентификатора пустого представления на:
android:id="@id/android:empty"
решаемая проблема!
Комментарии:
1. Согласно документам, вы должны иметь возможность удалить вызов setEmptyView () теперь, когда вы установили идентификатор представления в «@id / android: empty»
2. @mharper: вероятно, нет, поскольку он не использует ListViewActivity