Compréhension d'Android BaseAdapter de l'optimisation getView

cible d'apprentissage:

Comprendre getView


Partie de code:

Utiliser le langage 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 signifie obtenir l'interface à afficher pour l'élément
le nom du paramètre sens
position Indice
convertView Objets de cache disponibles fournis par le système
viewGroup Objet racine

Le but de juger si le convertView est vide est de réutiliser des objets et de réduire la surcharge de mémoire.

La raison pour laquelle ViewHold est une classe interne est que ViewHold n'est utilisé qu'une seule fois dans l'adaptateur.

Lorsque le convertView est vide, cela signifie que c'est la première fois que l'adaptateur est chargé, qu'un objet doit être chargé, le modèle est chargé à l'aide de la méthode LayoutInflater, et enfin l'objet set viewHold est enregistré dans le cache du convertView avec setTag, et la vue est chargée la prochaine fois Réutiliser les objets dans le temps.

Lorsque le convertView n'est pas vide, l'objet viewHold obtient l'objet set viewHold du convertView, atteignant ainsi l'objectif de réutilisation d'objet.

viewHold.textView.setText (title.get (position));
Enfin, définissez les données souhaitées à la position spécifiée.

Je suppose que tu aimes

Origine blog.csdn.net/Android_Cob/article/details/108640271
conseillé
Classement