Comment est-ce que je peux utiliser un traitable composé au lieu d’un LinearLayout qui contient un ImageView et un TextView

J’ai utilisé le nouvel outil Lint contre mon code. Il y a eu beaucoup de bonnes suggestions, mais celle que je ne peux pas comprendre.

Cette balise et ses enfants peuvent être remplacés par un et un composé extractible

Problème: Vérifie si le nœud actuel peut être remplacé par un TextView utilisant des tirables composés.

Un LinearLayout qui contient un ImageView et un TextView peut être traité de manière plus efficace en tant que tirable composé

Et voici ma mise en page

      

Quelqu’un peut-il donner un exemple concret de la façon de rendre un composé extractible dans ce cas?

TextView est livré avec 4 tirables composés, un pour chacun des côtés gauche, haut, droit et bas.

Dans votre cas, vous n’avez pas besoin de LinearLayout et d’ LinearLayout . Ajoutez simplement android:drawableLeft="@drawable/up_count_big" à votre TextView .

Voir TextView # setCompoundDrawablesWithInsortingnsicBounds pour plus d’informations.

Si pour une raison quelconque vous devez append via le code, vous pouvez utiliser ceci:

 mTextView.setCompoundDrawablesWithInsortingnsicBounds(left, top, right, bottom); 

où à gauche, en haut, à droite en bas sont Drawables

Pour append à cela – il semble important de définir la largeur et la hauteur du dessin selon ce post:

  • La forme pouvant être dessinée ne s’affiche pas lorsqu’elle est utilisée en combinaison avec l’atsortingbut Android: drawableBottom.

(son code fonctionne)

Vous pouvez utiliser l’implémentation dessinée par composé générale, mais si vous devez définir une taille de dessinable, utilisez cette bibliothèque:

https://github.com/a-tolstykh/textview-rich-drawable

Voici un petit exemple d’utilisation: