这是我在标题中所说的一个例子。以应用程序“Feedly”为例。如果您的列表中甚至有一项,它看起来像这样:
现在,如果列表为空,有一个很好的方法来处理它以避免大的空白,如下所示:
怎么能做到这一点?
顺便说一下,我可能会这样想,请参阅我的伪代码:
if (adapter.size < 1) {
// change ListView Background;
}
如果您有一个空的 ListView,高度应该为 0,并且设置 ListView 的背景可能没有用。
我这里有几个解决方案:
根据适配器的大小设置 LinearLayout/RelativeLayout 的背景,无论哪个包含 ListView。
创建另一个 ImageView 这是“全部读取”图像,并根据 ListView 适配器的数据大小设置其可见性。
为您想要在适配器大小 = 0 时显示的内容创建一个视图,并使用ViewSwitcher根据适配器大小在 ListView 和“全部读取”视图之间切换。我会推荐这个,因为它对于“全部阅读”视图可能更灵活。您可以拥有按钮、TextView、ImageView 或任何您想要放入其中的布局元素。
2 和 3 类似,但使用 ViewSwitcher 可能使代码的可读性比为视图设置 Visibility 更好。
这是使用 ViewSwitcher 的示例。