ListView回收在屏幕上可见的视图

时间:2011-07-07 08:43:05

标签: android listview android-layout

我遇到了ListView的问题,它回收了屏幕上可见的视图。 我的ListView中最多可以有4个项目,它们都在屏幕上可见。 在我更新ListAdapter使用的ArrayList中的对象的属性后,我调用列表适配器的notifyDataSetChanged()方法。 这会导致ListView回收视图并自行重绘。 问题是它以相反的顺序进行回收。所以,如果我在第一个Listview项目上有一个按钮,它将在notifyDataSetChanged()之后的第二个列表视图项目中。 我有getView更改convertView属性,除了onTouchListener按钮 如果我有一个适用于触摸事件的按钮(如PTT按钮),这是非常有问题的。它可见一段时间然后它变得不可见:-(。 1.为什么ListView会回收屏幕上可见的项目?这是正常的行为吗?为什么它的顺序相反? 2.我该怎么做才能解决我的问题?

1 个答案:

答案 0 :(得分:0)

您应该为getview()方法提供代码。当您不使用添加按钮的检查时,向项目添加按钮可能会导致问题。 您可以在所有项目中添加按钮,而不是添加按钮,只需在您想要的特定位置隐藏按钮即可。 还要检查“null”以在getview()方法中创建convertview。这样,如果它们不为null,它将不会回收/创建views / item。