3

这是我在标题中所说的一个例子。以应用程序“Feedly”为例。如果您的列表中甚至有一项,它看起来像这样:

在此处输入图像描述

现在,如果列表为空,有一个很好的方法来处理它以避免大的空白,如下所示:

在此处输入图像描述

怎么能做到这一点?

顺便说一下,我可能会这样想,请参阅我的伪代码:

if (adapter.size < 1) {
  // change ListView Background;
}
4

2 回答 2

4

查看ListView#setEmptyView方法。

于 2013-08-27T16:45:35.610 回答
0

如果您有一个空的 ListView,高度应该为 0,并且设置 ListView 的背景可能没有用。

我这里有几个解决方案:

  1. 根据适配器的大小设置 LinearLayout/RelativeLayout 的背景,无论哪个包含 ListView。

  2. 创建另一个 ImageView 这是“全部读取”图像,并根据 ListView 适配器的数据大小设置其可见性。

  3. 为您想要在适配器大小 = 0 时显示的内容创建一个视图,并使用ViewSwitcher根据适配器大小在 ListView 和“全部读取”视图之间切换。我会推荐这个,因为它对于“全部阅读”视图可能更灵活。您可以拥有按钮、TextView、ImageView 或任何您想要放入其中的布局元素。

2 和 3 类似,但使用 ViewSwitcher 可能使代码的可读性比为视图设置 Visibility 更好。

这是使用 ViewSwitcher 的示例

于 2013-08-27T16:46:12.413 回答