我正在尝试为ListView实现页脚的效果,但不使用ListView的addFooterView
方法。我的目的是将列表中最后一个可见项目视为固定页脚。在我看来,我可以通过检测列表中的最后一个可见项并动态更改它的布局来实现这一点。我做了一些研究,我认为我必须扩展BaseAdapter
类提供两种类型的项目。一个用于列表中的普通项目,指示适配器应使用普通布局对项目进行充气。第二个指示适配器应该使用页脚布局来扩充当前项目。我想我必须覆盖onScroll
方法来检测最后一个可见项目。这是我的问题。我应该使用getView
方法调用onScroll
方法吗?这是实现这种效果的正确方法吗?有可能吗?我会很感激任何建议。
提前感谢。
答案 0 :(得分:0)
不,你永远不应该直接调用getView()。只有延伸以下是我的问题。 我应该从onScroll方法调用getView方法吗?
AbsListView
的类才会调用getView
这是实现这种效果的正确方法吗?
没有。正确的方法是将addFooterView
调用到ListView
对象。
有可能吗?我会很感激任何建议。
不,这是不可能的。使用滚动侦听器,您将永远无法找到AbsListView
何时请求“最后一个视图”。这是因为ListView不保证它查询视图的顺序。当您第一次设置适配器或调用notifyDataSetChanged
时,这尤其正确,这导致ListView在多个点获取视图,以便能够布局和测量所需的内容。
建议使用addFooterView
方法,这是正确的做法,这就是它存在的原因。