我有一个包含 2 个 ListViews 的片段。我尝试为每个人设置 EmptyView。我尝试使用@id/android:empty 和通过代码通过XML 添加它们,两次都被忽略了。
任何人都可以使用两个 ListViews 和不同的 Empty View 吗?
我有一个包含 2 个 ListViews 的片段。我尝试为每个人设置 EmptyView。我尝试使用@id/android:empty 和通过代码通过XML 添加它们,两次都被忽略了。
任何人都可以使用两个 ListViews 和不同的 Empty View 吗?
它正在工作,您必须确保将View
(对于空状态)添加到您的布局中,其中ListView
。
此外,Adapter
您ListView
必须null
或isEmpty()
必须为 true 才能显示空视图。
如果仍有问题,请发布一些代码。
我认为@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"
/>
...
我希望这有帮助!