我有一个包含2个ListView的片段。我尝试为每个人设置EmptyView。 我试图通过XML使用@id / android:empty和通过Code添加它们,两次都得到了ignorend。
任何人都使用了两个ListView并且不同的空视图?
答案 0 :(得分:0)
它正常运行,您必须确保将View
(用于空状态)添加到ListView
所在的布局中。
此外,Adapter
的{{1}}必须为ListView
或null
必须为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"
/>
...
我希望这有帮助!