1

我有一个包含 2 个 ListViews 的片段。我尝试为每个人设置 EmptyView。我尝试使用@id/android:empty 和通过代码通过XML 添加它们,两次都被忽略了。

任何人都可以使用两个 ListViews 和不同的 Empty View 吗?

4

2 回答 2

0

它正在工作,您必须确保将View(对于空状态)添加到您的布局中,其中ListView

此外,AdapterListView必须nullisEmpty()必须为 true 才能显示空视图。

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

于 2013-01-25T14:31:07.680 回答
0

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

您的 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"
        />
...

我希望这有帮助!

于 2014-06-27T21:32:11.340 回答