我有ListView
我希望看起来像一张卡片。我有一个9补丁用作背景,可以实现凸起的卡片外观。
在可能的情况下,它比屏幕大,我希望能够在我的卡片背景上看到一个上边距,当我向下滚动列表时,边距应该被推离屏幕。当我滚动到底部时,我应该同样看到底部边距出现。
ListView.addHeaderView()
和.addFooterView()
不会在我的情况下删除它,因为它们会成为支持ListAdapter
的一部分并在我的卡背景范围内绘制。
我已经看到了一种可行的技术 - 用ListAdapter
包裹一个用我想要的卡背景元素装饰每个项目的技术。在这种方法中,每个项目都会绘制卡片背景的一部分。
然而,这比我想要的效率低,而且它似乎不属于ListAdapter
中的逻辑。相反,我正在寻找一种方法来扩展ListView
以添加此行为,但我发现自己在尝试阅读AbsListView
和ListView
中的10,000行(严重)代码时迷路了
我认为一年前在这里问了几乎同样的问题,但没有答案: (Android) How to fill ListView background and preserve header transparency
修改
另一种查看此问题的方法:是否有办法使背景与列表项一起滚动?我认为答案是否定的 - 我相信背景(即ListView
小部件)相对于屏幕而言是固定的,而不是其中的可滚动内容。如果我按照这种思路走上正轨,那么ListAdapter
- 带部分背景的每个项目方法似乎是唯一可行的方法。