【问题标题】:ListFragment - empty list TextView loads . . . eventuallyListFragment - 空列表 TextView 加载。 . .最终
【发布时间】: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


【解决方案1】:

原来问题与我在ViewPager 中使用SupportMapFragment 的事实有关。在非常缓慢地来回滑动视图后,我能够看到列表显示在似乎是黑屏的下方。当上面的 cmets 没有解决问题时,在 StackOverflow 上进行了一些挖掘后,我发现了this post。显然在视图寻呼机中使用MapFragment 会导致黑框出现在ViewPager 中的另一个Fragment 上。

我不知道为什么一段时间后,黑色伪影会消失并被空列表替换或填充ListView。但是,我能够通过在地图顶部放置一个具有透明背景的视图来解决问题,如上面的帖子所建议的那样。一旦黑色伪影被移除,我可以立即看到空列表视图。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-23
    • 1970-01-01
    相关资源
    最近更新 更多