android – base adapter,在显示不同视图时如何使用convertView

让我们说这是我的代码,

我想根据某些条件将2个不同的视图扩展到listView.

public View getView(int position, View convertView, ViewGroup parent) {
    if (condition) {
        view = layoutInflater.inflate(R.layout.layout1, parent, false);
    } else {
        view = layoutInflater.inflate(R.layout.layout2, parent, false);
    }
    return view;
}

我想使用convertView来回收返回的视图,但是我的适配器将如何知道要回收的两种类型中的哪一种?

最佳答案 回答:

您应该将此方法添加到适配器,这将使适配器将正确的转换视图提供给当前索引.
只要你保持与正确的类型保持一致,你回来的数字并不重要.

public int getItemViewType(int position) {
        int type;
        if (condition) {
            type = 1;
        } else {
            type = 2;
        }
        return type;
    }
点赞