ListView背景随数据滚动

4

是否可能使背景覆盖整个ListView,而不仅仅停留在固定位置?

我记得在制作网站时使用CSS可以将background-attachment设置为fixed,以使背景在滚动时保持在同一位置。但是我正在尝试相反的操作,使背景随着数据向下滚动。 ListView是否有这样的功能?


让我补充一下,当我使用ScrollView时,背景会“跟随”数据,也就是说,它只是相对于屏幕固定的。也许我可以用ScrollView做些聪明的事情,使它像ListView一样运行?比如插入行并随内容扩展等。 - Rasive
1个回答

2
使用现有的 ListView 实现你想要的效果是不可能的。为了节省视图创建/管理等,ListView 一次仅显示少量行。因此,ListView 即使不知道自身的总高度 - 它不会渲染一个行直到该行可见,并且行的高度可能不同。如果它甚至不知道自己的高度,那么如何可以让背景覆盖整个 ListView?
但是,你提出使用 ScrollView 的想法是可行的。但是,你将失去 ListView 的优化 - 如果你只有几行,则这不是什么大问题; 但是,如果你需要处理几十行(或更多),则你的应用程序可能会严重卡顿。而且,你没有得到 ListView 的框架,该框架旨在使基于行的用户界面更加容易。
如果你必须实现这种需求并且要处理太多行,那么编写自己的 ListView 子类(或自定义 ListView)可以计算其总高度(只要你知道每行的固定高度),然后相应地绘制背景。如果我必须实现此功能,同时需要处理许多行以至于不能轻松地放入 ScrollView 中,那么这可能是我会做的事情。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接