ListView的Item中有多个Button,上下滚屏后Button原有状态丢失

ListView的每个Item下都有2个Button(A和B),需求是点击ButtonA,然后ButtonA隐藏。
可是在上下滚屏操作中,发现屏幕下方最新出现的某个Item上的ButtonA也被隐藏了。
如果我分别把同屏的2个Item下ButtonA都隐藏,那么向下滚屏后,又会在某处新出现2个ButtonA被隐藏的Item.
怎么让Item记住他的Button的状态呢?

4个回答

用一个数组来存储ListView中的Button是否被隐藏的状态,就不会因为list刷新重用而使得button显示错乱了。

这是对convertView的重用导致的,可以记下每个item的按钮A的状态,然后在getView中根据这个状态来设置是隐藏还是显示

估计你要在重写你的adapter的getView方法了,利用一个集合记录隐藏Button的标识,这个标识应该是唯一的。

z550946941
jerrypiaopiao 灰常同意此方法,我也是这么搞的
6 年多之前 回复
qeemiaomiao
LarryQ 谢谢,您的思路很正确。
6 年多之前 回复

在listview 的getView方法中做到,如果convertView不为空就用原来的,如果为空, 就新建一个。
用一个HoldView 与 从convertView里Button的状态对应上。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!