Quelle est exactement la fonction du LayoutInflater?
Lorsque vous concevez à l'aide de XML, tous les éléments de votre interface utilisateur ne sont que des balises et des paramètres. Avant de pouvoir utiliser ces éléments d'interface utilisateur (par exemple, un TextView ou un LinearLayout), vous devez créer les objets réels correspondant à ces éléments xml. C'est à cela que sert le gonfleur. Le gonfleur utilise ces balises et leurs paramètres correspondants pour créer les objets réels et définir tous les paramètres. Après cela, vous pouvez obtenir une référence à l'élément d'interface utilisateur à l'aide de findViewById ().
Pourquoi tous les articles que j'ai lus vérifient-ils si convertview est nul ou pas en premier? Qu'est-ce que cela signifie quand il est nul et que signifie-t-il quand ce n'est pas le cas?
Celui-ci est intéressant. Vous voyez, getView () est appelé à chaque fois qu'un élément de la liste est dessiné. Maintenant, avant que l'élément puisse être dessiné, il doit être créé. Maintenant, convertView est essentiellement la dernière vue utilisée pour dessiner un élément. Dans getView (), vous gonflez d'abord le xml, puis utilisez findByViewID () pour obtenir les différents éléments de l'interface utilisateur de l'élément de liste. Lorsque nous vérifions (convertView == null), ce que nous faisons est de vérifier que si une vue est nulle (pour le premier élément), puis de la créer, sinon, si elle existe déjà, réutilisez-la, pas besoin de recommencer le processus de gonflage . Le rend beaucoup plus efficace.
Vous devez également avoir rencontré un concept de ViewHolder dans getView (). Cela rend la liste plus efficace. Ce que nous faisons, c'est créer une visionneuse et stocker la référence à tous les éléments de l'interface utilisateur que nous avons obtenus après le gonflement. De cette façon, nous pouvons éviter d'appeler les nombreux findByViewId () et gagner beaucoup de temps. Ce ViewHolder est créé dans la condition (convertView == null) et est stocké dans le convertView à l'aide de setTag (). Dans la boucle else, nous le récupérons simplement en utilisant getView () et le réutilisons.
Quel est le paramètre parent accepté par cette méthode?
Le parent est un ViewGroup auquel votre vue créée par getView () est finalement attachée. Maintenant, dans votre cas, ce serait le ListView.
J'espère que cela t'aides :)