我正在使用ListView,每个列表元素上有几个按钮.
当单击一行上的按钮时,该按钮应该消失.单击按钮时单击的按钮就会消失.问题是其他一些列表元素按钮也消失了.
例如,当我单击第一个元素按钮时,它也会影响第6,11,16个元素中的按钮.第7个元素按钮也影响第2,第12,第17个元素.
原因是适配器不为数据中的所有元素创建列表元素.它只会创建几个足以在屏幕上显示的对象.如图所示,当在列表中向下时,top元素成为最后一个,其值被更改.因此,当我在第一个元素中隐藏按钮时,第8个元素中的按钮(数字来自图片)也被隐藏.
我可以避免使用创建的项目的副本,并为每个元素创建新项目可能是解决方案但它在查看这么多行后减慢了应用程序.
我一直在找几个小时但找不到任何解决方案.我希望有人知道任何解决方案,或者至少建议我使用不同类型的适配器,实现或其他东西.
解决方法:
您应该跟踪显示或隐藏的每个元素按钮状态天气.在适配器的getView()方法中检查当前元素状态,然后相应地隐藏或显示按钮.使用此方法时,请确保将每个按钮状态设置为不仅应该隐藏的状态,以便在视图循环时,视图获取新项目状态而不是旧项目状态.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。