Comment puis-je utiliser un composé drawable au lieu d'un LinearLayout qui contient une ImageView et un TextView
Couru les nouvelles Peluches outil par rapport à mon code. Il est venu avec beaucoup de bonnes suggestions, mais ce que je ne comprends pas.
Cette balise et de ses enfants peut être remplacé par un et un composé drawable
Question: Vérifie si le nœud actuel peut être remplacé par un TextView en utilisant le composé un drawable.
Un LinearLayout qui contient une ImageView et un TextView peuvent être gérées plus efficacement comme un composé drawable
Et voici ma présentation
<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 donner un exemple concret de la façon de faire un composé drawable dans ce cas?
- fwiw c'est l'un des vérifications j'ai l'habitude de désactiver, à cause des faux positifs. Pas tous les
TextView
/ImageView
combos peuvent être remplacées. - Vous pouvez utiliser la vue personnalisée si vous souhaitez définir une taille de l'image. Cela permettra d'avoir une vue plus claire. Voir ma réponse: stackoverflow.com/a/31916731/2308720
- Je suis d'accord, dans de nombreux cas, cependant, dans mon expérience, j'ai souvent, il n'en vaut pas la peine de créer une vue personnalisée pour obtenir autour de ce que je considère être un buggy Peluches vérifier.
Vous devez vous connecter pour publier un commentaire.
TextView
est livré avec 4 composé un drawable, un pour chaque de gauche, haut, droite et bas.Dans votre cas, vous n'avez pas besoin de la
LinearLayout
etImageView
à tous. Juste ajouterandroid:drawableLeft="@drawable/up_count_big"
à votreTextView
.Voir TextView#setCompoundDrawablesWithIntrinsicbounds pour plus d'info.
ImageView
. L'avertissement dit que "peut être remplacé par" et non "devrait être remplacé par"si pour quelque raison vous avez besoin d'ajouter via le code, vous pouvez utiliser ceci:
où à gauche, en haut, en bas à droite sont un drawable
Pour ajouter à cela, - il semble important de définir la largeur & hauteur de la drawable que par ce post:
(son code)
Vous pouvez utiliser générale composé drawable mise en œuvre, mais si vous avez besoin de définir une taille de drawable utiliser cette bibliothèque:
https://github.com/a-tolstykh/textview-rich-drawable
Voici un petit exemple d'utilisation: