Android ListView 点击事件异常。
怪我咯
怪我咯 2017-04-17 17:33:17
[Android讨论组]

ListView 的item布局下方还有一个被GONE的布局,默认是不显示的。 点击lsit info 0 右侧的箭头 显示了下部的布局,但是当listview 向下滑动,下面的item 被复用,造成list info 6 下面的布局也显示了。 请问用什么样的方法可以解决这样的问题?如果可以的话尽量说的详细一点。第一次做这样的页面。

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(3)
伊谢尔伦

试试recycleview

阿神

复用是因为 if (convertView != null) 吧,你可以不用convertView 直接加载,当然这样listview的效率会低。
或者使用expandListview

高洛峰

这个问题是ListView的缓存机制造成的,所以对于AdapterView(ListView的父类)及其子类,修改它的item中的view的操作都不应该在除了适配器(adapter)中的getView函数以外的地方执行。

这里切换下方显示和隐藏,最好实在适配器的数据对象(Entity)中定义一个boolean变量,根据boolean变量的值在getView函数中设置当前这一个item的下方按钮组显示或者隐藏。这样修改的话就是修改指定Position的数据对象中的布尔值,然后调用适配器的notifyDataSetChanged。只不过这里有一个刷新过程,但是多数情况下,这个刷新是看不出来的,除非你的Item中有大量的比较大的图片,然后每个图片都是从网络上获取的。

甚至说,item的点击事件都应该在适配器中自定义,最好不要使用以前的OnItemClickListener。从RecylerView就可以知道,它是没有OnItemClickListener这个接口的。

另外数据适配器这个东西,重复的写多了,还是最好封装一下,所以推荐你看看这篇文章,打造万能适配器

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号