我有一个自定义适配器(扩展BaseAdapter)。可以在列表的顶部或底部添加或删除项目。物品的高度各不相同,有些高得多。
我看到的行为是:
向下滚动到列表中间
异步地,在列表顶部添加或删除项目,调用notifyDataSetChanged()
所需:用户没有任何变化,因为数据集更改只会影响屏幕外的项目
实际:列表的屏幕部分会跳转,因为其中的所有项目的位置都会递增或递减,而不同的项目会位于旧位置
如何更改项目时如何避免加扰当前视图?
对我而言,一个适配器应该能够浏览无限的数据列表似乎是合理的,但我没有幸运地在野外找到这个例子。什么是思考这个问题的正确方法?
谢谢!
答案 0 :(得分:0)
您是否正在使用ViewHolder模式?这将完全符合您的要求(由于“屏幕外”更改而不刷新UI。)
此外,它还可以使您的列表更加流畅和响应。
我认为这是一个明显的例子: http://www.jmanzano.es/blog/?p=166