J'ai lancé le nouvel outil Lint contre mon code. Il est venu avec beaucoup de bonnes suggestions, mais celle-ci, je ne peux pas la comprendre.
Cette balise et ses enfants peuvent être remplacés par un et un composé dessinable
Problème: vérifie si le nœud actuel peut être remplacé par un TextView à l'aide de dessins composables.
Un LinearLayout qui contient une ImageView et une TextView peut être traité plus efficacement comme un dessin composé
Et voici ma mise en page
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_centerInParent="true">
<ImageView
android:id="@+id/upImage"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_gravity="center_vertical"
android:scaleType="centerInside"
android:src="@drawable/up_count_big">
</ImageView>
<TextView
android:id="@+id/LikeCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_marginBottom="1dp"
android:textColor="@color/gray"
android:textSize="16sp"
android:layout_gravity="center_vertical">
</TextView>
</LinearLayout>
Quelqu'un peut-il fournir un exemple concret de la façon de rendre un composé étirable dans ce cas?
TextView
/ImageView
combos ne peuvent pas être remplacés de cette façon.Réponses:
TextView
est livré avec 4 tiroirs composés, un pour chacun des côtés gauche, supérieur, droit et inférieur.Dans votre cas, vous n'avez pas besoin
LinearLayout
etImageView
du tout. Ajoutez simplementandroid:drawableLeft="@drawable/up_count_big"
à votreTextView
.Voir TextView # setCompoundDrawablesWithIntrinsicBounds pour plus d'informations.
la source
ImageView
. L'avertissement dit «peut être remplacé par», et non «devrait être remplacé par»si pour une raison quelconque vous devez ajouter via le code, vous pouvez utiliser ceci:
où gauche, en haut, en bas à droite sont Drawables
la source
Pour ajouter à cela - il semble important de définir la largeur et la hauteur du dessinable selon ce post:
(son code fonctionne)
la source
Vous pouvez utiliser une implémentation générale de dessin, mais si vous devez définir une taille de dessin, utilisez cette bibliothèque:
https://github.com/a-tolstykh/textview-rich-drawable
Voici un petit exemple d'utilisation:
la source