2 qeemiaomiao qeemiaomiao 于 2013.04.10 22:53 提问

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

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

4个回答

lvyoudejiayu
lvyoudejiayu   2013.04.15 13:31
已采纳

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

windspeaker
windspeaker   2013.04.11 11:26

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

baimy1985
baimy1985   2013.04.10 23:39

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

z550946941
z550946941 灰常同意此方法,我也是这么搞的
大约 5 年之前 回复
qeemiaomiao
qeemiaomiao 谢谢,您的思路很正确。
大约 5 年之前 回复
luhuajcdd
luhuajcdd   2013.04.11 13:34

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!