更改适配器顶部的元素,而无需重新定位较低的项目

时间:2013-03-01 02:03:14

标签: android listview baseadapter

我有一个自定义适配器(扩展BaseAdapter)。可以在列表的顶部或底部添加或删除项目。物品的高度各不相同,有些高得多。

我看到的行为是:

  1. 向下滚动到列表中间

  2. 异步地,在列表顶部添加或删除项目,调用notifyDataSetChanged()

  3. 所需:用户没有任何变化,因为数据集更改只会影响屏幕外的项目

    实际:列表的屏幕部分会跳转,因为其中的所有项目的位置都会递增或递减,而不同的项目会位于旧位置

    如何更改项目时如何避免加扰当前视图?

    对我而言,一个适配器应该能够浏览无限的数据列表似乎是合理的,但我没有幸运地在野外找到这个例子。什么是思考这个问题的正确方法?

    谢谢!

1 个答案:

答案 0 :(得分:0)

您是否正在使用ViewHolder模式?这将完全符合您的要求(由于“屏幕外”更改而不刷新UI。)

此外,它还可以使您的列表更加流畅和响应。

我认为这是一个明显的例子: http://www.jmanzano.es/blog/?p=166