使用膨胀视图的setEmptyView()不起作用

时间:2011-10-28 13:48:34

标签: android

我有一个带有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有什么关系吗?

2 个答案:

答案 0 :(得分:2)

使用android:id/empty ID作为解释here的任何类型的视图。

答案 1 :(得分:1)

似乎将空视图的id设置为:

android:id="@id/android:empty"

解决了!