2010-11-30 76 views
3

所以我对构成我的ListView的不同部分有问题。我把它们放到一个ArrayList中,并使用一个自定义的ArrayAdapter来连接到之前完成的ListView,所以我不相信这里有问题。最初该列表似乎具有正确顺序的部分,但随后我将向下滚动列表,然后内容将以不正确的顺序加载。然后我回滚起来,一切都混乱了。有没有人遇到过这个?ListView的内容在滚动屏幕上滚动

感谢 -Jake

+1

你重写你的适配器的getview方法?如果是这样,请展示你在做什么。 – 2010-11-30 21:18:46

+0

杰克,我有同样的问题,我在这里找到解决方案:http://stackoverflow.com/questions/2955218/listview-in-arrayadapter-order-gets-mixed-up-when-scrolling?rq=1 – Reiksiel 2013-11-09 15:49:37

回答

5

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

对于这更好的说明,请参阅

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