ListView 适配器中“convertView”的用途是什么?

2022-09-01 12:27:42

在 android 中,我通常使用 为 创建视图,因此,我必须覆盖该函数MyAdapter extends ArrayAdapterListView

public View getView(int position, View convertView, ViewGroup parent) {
    // somecode here
}

但是,我不知道到底是什么和做什么!有人有建议吗?更多细节,更多帮助!谢谢!convertViewparent


答案 1

从文档中,

convertView - 如果可能,要重用的旧视图。注意:在使用之前,您应该检查此视图是否为非 null 且类型合适。如果无法转换此视图以显示正确的数据,则此方法可以创建新视图。

换句话说,此参数严格用于提高 .当 使用 和 用 s 填充其行时,适配器通过调用每行来用对象填充每个列表项。适配器使用 作为回收不再使用的旧对象的一种方式。通过这种方式,可以发送不再显示的适配器旧的“回收”视图对象,而不是在适配器每次想要显示新列表项时实例化一个全新的对象。这是参数的用途。AdapterListViewAdapterViewViewgetView()convertViewViewListViewconvertView


答案 2

convertView用于重用旧视图。

了解安卓系统的功能。 使您能够对新数据重用某些视图。AdapterAdapter

因此,如果一个列表包含 15 个项目,但窗口只能显示 5 个项目,那么首先将为 null,我们需要为这五个项目创建新视图,但是当您向下滚动时,您有两个选项,要么创建 6-10 个视图,要么重用旧视图并将新数据加载到这些视图中。 并使您能够执行后面的方法。convertViewAdapterconvertView


推荐