Il y a une simple question qui, après avoir cherché, je voulais demander que nous créons une classe de titulaire statique et assignez les vues à l'intérieur? S'il vous plaît effacer mes doutes ce sera une grande aide pour moi. P>
3 Réponses :
C'est un point d'optimisation. Sans le titulaire de la vue, vous devrez appeler les méthodes de FindViewByID à chaque fois. Avec le député, vous n'avez besoin que de les appeler une fois.
Exemple avec un TextView et un imageView: p>
sans porte-vision: p>
if (convertView == null) { convertView = mInflater.inflate(..., null); holder = new ViewHolder(); //called once holder.tv = (TextView) vi.findViewById(..); holder.iv = (ImageView) vi.findViewById(...); vi.setTag(holder); } else { holder = (ViewHolder) vi.getTag(); } holder.tv.setText(...)
avec porte-visée: p>
if (convertView == null) { convertView = mInflater.inflate(..., null); } //Following called each time TextView tv = (TextView)convertView.findViewById(...); ImageView iv = (ImageView)convertView.findViewById(...); tv.setText(...)
La réponse est également simple si vous comprenez comment un un Les objets réutilisés peuvent être une hiérarchie complexe de Vous pouvez faire référence à Android ListView et Listacivity - Tutoriel Pour plus d'informations sur le motif titulaire de la vue. P> Adapterview code> fonctionne. p>
Adapterview code>
est une vue dont les enfants sont déterminés par un adaptateur code>
. Le Adapterview code> (plus spécifiquement la mise en œuvre concrète comme
listview code>) contient plus d'informations que ce qui est affiché à tout moment. Pour optimiser la consommation de mémoire et également pour des performances, l'adaptateur code> code> réduit généralement la vue
code> S représentant les éléments individuels. Vous avez donc moins de nombre d'objets code> code> que les données correspondantes. p>
View Code> S ou
Groupes de vue code>. Donc, au cas où vous souhaitez trouver l'individu
Afficher les objets CODE> de cette hiérarchie, vous devez dépendre de la méthode
Findvestyid () CODE> et cela devient coûteux lorsque la hiérarchie de vue a plusieurs niveaux. Donc, pour la simplicité (et aussi pour améliorer les performances), le modèle de porte-visuelle est utilisé, où l'individu
Afficher les objets code> que nous souhaitons être affectés à une classe interne statique. P>
Votre code peut appeler A Vous pouvez lire ligne directrice Android pour plus de détails. p>
Vous pouvez également voir Pourquoi Android préfère-t-il les classes statiques Link. < / p>
un lien plus intéressant Comment Work de la liste strong>, après la lecture de ce développeur de blogs, peut effacer la logique de Lisview et pourquoi il faut également implémenter la classe statique intérieure pour ListView. P> FOETVIEDBYID () code> fréquemment pendant le défilement de
listview code>, qui peut ralentir les performances. Même lorsque l'adaptateur renvoie une vue gonflée pour le recyclage, vous devez toujours rechercher les éléments et les mettre à jour. Un moyen d'utiliser répété d'une utilisation répétée de
FOETVIEVYID () code> est d'utiliser le
"Support de vue" code> strong> modèle de conception. P>
Vue titulaire de la vue Code> Object stocke chacune des vues de composant dans le champ Tag de la mise en page. Vous pouvez donc y accéder immédiatement sans que la nécessité de les regarder à plusieurs reprises. Premièrement, vous devez créer une classe pour contenir votre jeu de vues exact. p>
classe interne statique code> car les vues améliorent grandement les performances li>
ol>
Votre question est-elle concernant le qualificatif «statique» ou le député en général? Avez-vous lu la documentation: développeur.android.com/training/improving- Mise en page / ...