【问题标题】:ListView's contents scrambled on scrollListView 的内容在滚动时被打乱
【发布时间】:2010-11-30 21:06:07
【问题描述】:

所以我对组成我的 ListView 的不同部分有疑问。我将它们放入 ArrayList 并使用自定义 ArrayAdapter 连接到 ListView,这是我以前做过的,所以我不相信那里有问题。最初,列表似乎以正确的顺序排列,但随后我将向下滚动列表,然后内容将以错误的顺序加载。然后我向上滚动,一切都混乱了。有没有人遇到过这种情况?

谢谢 -杰克

【问题讨论】:

  • 您是否覆盖了适配器的 getview 方法?如果是这样,请展示你在做什么。
  • 杰克,我遇到了同样的问题,我在这里找到了解决方案:stackoverflow.com/questions/2955218/…

标签: android listview android-arrayadapter


【解决方案1】:

是的,您的问题与 List 重用每一行的视图这一事实有关。假设您的列表可以看到 5 个项目,但您的 ListAdapter 中有 15 个项目。 Android 将为您的行视图创建 5 + 1 个实例,而不是 15 个。列表中的每一行一个 + 1 表示可以看到顶部和底部的一半。当一行被移出可见区域时,列表将回收该视图实例以用于另一行,而不是创建一个新的。如果您每次都没有正确重置所有用户界面组件,那么您将获得来自其他行的工件显示。您必须确保每次将数据从数组列表中的对象绑定到每次设置的每个字段的视图。

有关此的更好描述,请参阅

http://www.youtube.com/watch?v=N6YdwzAvwOA&feature=related

【讨论】:

  • 太棒了。我意识到我正在回收,但我没有重置字段,所以它只是显示与以前相同的内容。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多