修改 ListView 的所有子元素(不仅仅是可见的子元素)的正确方法是什么? 我有一个图像,默认设置为可见性消失。我希望在用户单击按钮(对于所有项目)后使其可见。
谢谢!
最佳答案
What is the correct way to modify all child elements (not only the visible ones) of a listview.
关于 ListView
需要了解的一件事是,并非所有列表项都是在任何给定时间生成(膨胀/填充)的。
例如,假设您的列表 Adapter
有 1000 个项目,但 ListView
一次只能显示 10 个项目。创建所有 1000 个列表项将是对资源(例如内存)的严重浪费。
相反,只创建 10 个可见项目,每次您将其中一个滚动到屏幕顶部或底部时,消失的项目就会通过作为 convertView
传递到适配器的
getView
方法。
getView (int position, View convertView, ViewGroup parent)
要执行您所要求的操作,您应该扩展您希望使用的任何 Adapter
类型并覆盖 getView
方法。在该方法中检查 convertView
是否为 null
。如果是,请扩充您自己的列表项布局实例。如果它不为 null,则重新使用 UI 元素(TextView
、ImageView
等)。
要使所有 ImageView
元素可见,请使用全局 Boolean
,例如 showImageView
,按下按钮即可切换。然后在 getView
中使用它来决定是否设置 ImageView
的可见性。
关于Android Listview修改所有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10557597/