多个ListView和空视图

时间:2013-01-25 13:59:04

标签: android listview user-interface

我有一个包含2个ListView的片段。我尝试为每个人设置EmptyView。 我试图通过XML使用@id / android:empty和通过Code添加它们,两次都得到了ignorend。

任何人都使用了两个ListView并且不同的空视图?

2 个答案:

答案 0 :(得分:0)

它正常运行,您必须确保将View(用于空状态)添加到ListView所在的布局中。

此外,Adapter的{​​{1}}必须为ListViewnull必须为true才能显示空视图。

如果您还有问题,请发布一些代码。

答案 1 :(得分:0)

我认为@Leandros走在正确的轨道上,您需要确保每个列表都已正确设置。当您在同一个xml中定义@id/android:empty两次时,听起来可能存在不匹配。您可能需要为它们提供唯一的ID,然后在java中将它们连接起来。

您的xml可能如下所示:

...
<LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    >
    <ListView 
        android:id="@+id/list1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        />
    <TextView 
        android:id="@+id/empty1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="List 1 is empty"
        />
</LinearLayout>

<LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    >
    <ListView 
        android:id="@+id/list2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        />
    <TextView 
        android:id="@+id/empty2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="List 2 is empty"
        />
</LinearLayout>
...

然后在片段中,您需要抓住视图并附加它们。

...
    ListView list1 = (ListView)findViewById(R.id.list1);
    View empty1 = findViewById(R.id.empty1);
    list1.setEmptyView(empty1);

    ListView list2 = (ListView)findViewById(R.id.list2);
    View empty2 = findViewById(R.id.empty2);
    list2.setEmptyView(empty2);
...

如果你真的想要一个更复杂的空视图,你可以在xml中包含另一个布局而不是TextView。

...
    <include layout="@layout/empty" 
        android:id="@+id/list1"
        />
...
    <include layout="@layout/empty" 
        android:id="@+id/list2"
        />
...

我希望这有帮助!