【发布时间】:2013-03-06 20:38:46
【问题描述】:
我使用ListFragment 来显示ListView。问题是当列表为空时应该显示的TextView 不会立即显示。它以黑屏开始,然后最终将加载填充列表或空的TextView(以先到者为准)。
我知道ListFragment 不会像ListActivity 那样自动设置空的TextView,因此我使用以下代码手动添加了空的TextView:
ListView list = (ListView) getActivity().findViewById(android.R.id.list);
TextView emptyText = (TextView) getActivity().findViewById(android.R.id.empty);
list.setEmptyView(emptyText);
我希望空视图立即显示,然后在填充时替换为 ListView。
【问题讨论】:
-
列表片段会自动设置空视图...您只需要调用 setEmptyText("it's empty!");指定文本
-
你应该使用
ListFragment#setEmptyText() -
这不起作用 - 使用 setEmptyText() 给我 IllegalStateException: Can't be used with a custom content view。即使我从 XML 中删除空的 txt 视图并删除上面的代码,也会发生这种情况。
-
将
放入您的 XML 将在您的布局中包含列表视图和空的 TextView,并具有正确的 ID。然后删除您之前创建的 listview/textview 并保留您的自定义布局项。只需在其上设置宽度和高度(我不想用它弄乱 cmets) -
与以前相同的错误 - 我将您的建议添加到列表片段的 XML 中,即具有列表视图和空文本视图的那个,并删除了上面的代码。我得到与 setEmptyText 相同的错误。
标签: android android-listview android-listfragment empty-list