0

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

我看到的行为是这样的:

  1. 向下滚动到列表中间

  2. 异步地,将一个项目添加到列表顶部或从列表顶部删除,调用 notifyDataSetChanged()

Desired:用户没有任何变化,因为数据集的变化只影响屏幕外的项目

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

更改项目时如何避免打乱当前视图?

对我来说,适配器应该能够翻阅无限的数据列表似乎是合理的,但我没有运气在野外找到这样的例子。思考这个问题的正确方法是什么?

谢谢!

4

1 回答 1

0

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

此外,它将使您的列表更加流畅和响应迅速。

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

于 2013-03-01T02:09:27.033 回答