Je crée une liste de liste personnalisée dans la vue de la liste des androïdes. C'est très simple, il a une vue texte à gauche et une image à droite. L'image doit aligner toutes les choses correctement et la vue textuelle doit reprendre tout l'espace à gauche. Le problème est que je peux obtenir l'image de s'afficher, mais elle pousse à gauche. Si je définis la largeur TextView sur Fill_Parent, l'image disparaît. Voici ma mise en page:
<?xml version="1.0" encoding="utf-8" ?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="50px" android:layout_gravity="center_vertical"> <!-- item --> <TextView android:id="@+id/txtItem" android:gravity="center_vertical" android:textSize="20px" android:layout_width="fill_parent" android:layout_height="fill_parent"/> <!-- disclosure image --> <ImageView android:layout_gravity="right|center_vertical" android:src="@drawable/common_icon_arrow_disclosure" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout>
6 Réponses :
Layout relative est ce que vous voulez. Dans votre cas, l'attribut Fill_Parent a permis à la vue du texte de repousser l'image de l'écran. Si vous utilisez une mise en page relative et définissez la vue textuelle pour utiliser layout_toleftof, cela devrait fonctionner.
Voici un exemple rapide que je pense fonctionnera (je ne l'ai pas testé et c'est de la mémoire, mais l'idée est là). .. p>
Cela ne fonctionne pas non plus. L'image arrow apparaît, mais le texte ne le fait pas. En outre, la flèche (moins grande que l'article) n'est pas centrée verticalement, elle est alignée dessus. En fait, j'ai eu quelque chose de très similaire, mais il a eu l'imageView avec layout_torightof l'image textuelle, mais qui n'a fait que le contraire de votre exemple, le texte est arrivé, mais pas la flèche.
Désolé que je n'ai pas le temps d'écrire un cas de test, mais quelque chose d'autre que vous pourriez essayer est le layout_alignparentleft i> au lieu de Layout_gravity i>. Je sais que j'ai fait exactement ce que vous demandez, mais je ne peux pas le trouver dans mes projets et je sais qu'il a utilisé le relativation. Bonne chance et je vais vérifier demain si je peux.
J'ai utilisé layout_alignparentright = "true" sur l'imageView (j'ai commuté la vue de l'image et la vue texte, puisque la vue de l'image est à droite, elle devrait vraiment être déclarée deuxième). Le problème est double; Je peux obtenir à la fois la vue texte et la vue img à afficher, mais 1) la vue d'image n'est pas centrée verticalement - comme je l'ai mentionnée, l'image est réellement plus petite que la hauteur de la ligne, et 2) la vue d'image n'est pas alignée sur la À droite, il suit plutôt juste après la fin du texte. Si je change la vue textuelle pour avoir une layout_width = "Fill_Parent", la vue Image disparaît à nouveau. :(
Vous pouvez utiliser bitmap dessinable comme ceci (ceci ajoute également des coins arrondis): et mettre ceci à l'origine de la propriété de fond de votre TextView: p>
Merci! Cela fonctionne également pour définir une icône de fond personnalisé et de flèche vers le bas pour un contrôle de spinner. Il suffit de définir le fond de votre spinner sur une ressource dessinable définie comme celle-ci et que vous êtes défini.
Alignez votre texte avec le parent et définissez la gravité de l'image à droite:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="48dp"> <TextView android:id="@+id/team_member_name" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_alignParentLeft="true" android:gravity="center_vertical" android:singleLine="true"/> <ImageView android:id="@+id/team_member_icon" android:layout_alignParentRight="true" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_gravity="right" android:layout_marginLeft="8dp" android:layout_marginRight="8dp" android:src="@drawable/circle_green"/> </RelativeLayout>
Ceci a fonctionné pour moi: ligne Android: Layout_marginRight = "10DP" a fait le tour. P> espère qu'il aide! P> P>
on dirait qu'il y a un bogue de mise en page ou ainsi. Si la vue TextView a Fill_Parent Drapeau, l'imageView sera éloignée de la mise en page, même si le contenu TextView est suffisamment petit. P>
Vous pouvez également simplement ajouter le sable à la TextView directement comme celui-ci.
<TextView android:id="@+id/txtItem" android:layout_width="fill_parent" android:layout_height="fill_parent" android:drawableRight="@drawable/common_icon_arrow_disclosure" android:gravity="center_vertical" android:textSize="20px" />
Cela devrait être la réponse acceptée car le TextView définira automatiquement le composé disposé à proximité de ses limites.
Mais comment pouvons-nous effectuer une action surClick sur une seule image introactive? pas de texte entier ??
Je ne peux pas croire que je n'ai jamais trouvé celui-là avant. Merci!
textview.setCompounddawablesWithIntrinsiccations (0, 0, R.Drawable.common_icon_arrow_disclosure, 0)