Android Listview修改所有项目

标签 android listview

修改 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 元素(TextViewImageView 等)。

要使所有 ImageView 元素可见,请使用全局 Boolean,例如 showImageView,按下按钮即可切换。然后在 getView 中使用它来决定是否设置 ImageView 的可见性。

参见Adapter.getView(...)

关于Android Listview修改所有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10557597/

相关文章:

android - 水平滚动的 GridView

android - 在 MPAndroidChart 库中,如何在长时将 X 轴标签包装成两行?

android - 如何从另一个 Activity 调用 ListView 适配器进行刷新 - notifyDataSetChanged()

android - 如何在不关闭的情况下在android中的recyclerview上滑动

android - 自定义 ListView 部分标题

android - 具有不同行布局的光标适配器

listview - 我的子类过程中未收到 WM_LBUTTONUP

javascript - 无法在 Android 上显示 KendoUI 按钮

android - 如何使用 setResultCallback 方法?

java - 获取android中所有已安装应用的名称、图标和包名