Comprensión de Android BaseAdapter sobre la optimización getView

objetivo de aprendizaje:

Comprender getView


Parte del código:

Usar lenguaje Java


    @Override
    public View getView(int position, View convertView, ViewGroup viewGroup) {
    
    
        ViewHold viewHold;

        //判断是否存在缓存
        if (convertView == null) {
    
    
            viewHold = new ViewHold();
            convertView = LayoutInflater.from(content).inflate(R.layout.demo_item, viewGroup, false);
            viewHold.textView = convertView.findViewById(R.id.title);
            viewHold.button = convertView.findViewById(R.id.confirm);
            convertView.setTag(viewHold); //将Holder存储到view中,给下次view用来复用
        }else{
    
    
            viewHold = (ViewHold) convertView.getTag();//复用view
        }
        viewHold.textView.setText(title.get(position));
        return convertView;
    }

    class ViewHold {
    
    
        TextView textView;
        Button button;
    }
  • getView significa que la interfaz se muestre para el artículo
nombre del parámetro sentido
posición Subíndice
convertView Objetos de caché disponibles proporcionados por el sistema
viewGroup Objeto raíz

El propósito de juzgar si convertView está vacío es reutilizar objetos y reducir la sobrecarga de memoria.

La razón por la que ViewHold es una clase interna es porque ViewHold solo se usa una vez en el adaptador.

Cuando convertView está vacío, significa que es la primera vez que se carga el adaptador, se debe cargar un objeto, la plantilla se carga usando el método LayoutInflater, y finalmente el objeto set viewHold se guarda en el caché en convertView con setTag, y la vista se carga la próxima vez Tiempo de reutilización de objetos.

Cuando convertView no está vacío, el objeto viewHold obtiene el objeto set viewHold del convertView, logrando así el propósito de reutilización del objeto.

viewHold.textView.setText (title.get (position));
Finalmente, establezca los datos deseados en la posición especificada.

Supongo que te gusta

Origin blog.csdn.net/Android_Cob/article/details/108640271
Recomendado
Clasificación