我有一个带有3个标签的TabHost,每个标签都包含一个列表,我要附加一个空视图,当没有项目时显示。布局如下:
<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));
但是,当附加到列表的适配器没有项目时,不会显示空视图。 它与view-heirarchies有什么关系吗?
答案 0 :(得分:2)
使用android:id/empty
ID作为解释here的任何类型的视图。
答案 1 :(得分:1)
似乎将空视图的id设置为:
android:id="@id/android:empty"
解决了!