解决安卓listview视图重用、复用问题。

博客讨论了ListView的视图复用机制如何优化性能,但同时也导致子view监听问题。作者尝试通过设定ListView大小来解决,却发现无法滑动。最终解决方案是将ListView置于ScrollView内,配合线性布局实现滚动。这种方法允许一次性加载所有内容并保持滑动功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ListView视图复用功能:
当listview的内容超过显示的大小,滑动列表时,item的视图不变只是改变其中存放的子view,并且不同子view只创建一次,这样就不会每次都加载新的视图,优化性能。
而这样就会出现一个问题,如果我们想监听每一个子view,当子view不在item的显示范围内时,监听就会失败。如果监听item的视图又会导致监听的视图位置中的子view会随滑动而改变。

解决办法就是把listview的大小直接定为显示所有内容需要的大小。这样listview就会一次性加载所有的内容。
但是不知道怎么回事,这样设置之后listview竟然不能滑动了。可能是我测试的时候搞错了吧。
我的解决办法是直接把listview所在的最外层布局改为scrollview滚动,把宽度或者高度改为自适应大小。最好把listview放进一个线性布局中。

布局文件的样子:
《scrollview》
《LinearLayout》
《listview》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

love.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值