Je veux faire une disposition de rangée de liste. Cette disposition a une vue d'image dans le coin le plus à gauche, une vue texte juste à côté de la vue d'image et une vue d'image dans le coin le plus à droite. Je veux que tous soient au centre vertical.
<RelativeLayout
Android:layout_width="fill_parent" Android:layout_height="100dp"
Android:gravity="center_vertical"
>
<ImageView
Android:id="@+id/icon"
Android:layout_width="50dp" Android:layout_height="50dp"
Android:layout_gravity="center_vertical" />
<TextView
Android:id="@+id/func_text" Android:layout_toRightOf="@id/icon"
Android:layout_width="wrap_content" Android:layout_height="100dp"
Android:layout_gravity="center_vertical" />
<ImageView
Android:layout_width="50dp" Android:layout_height="50dp"
Android:layout_alignParentRight="true"
Android:layout_gravity="center_vertical"
Android:src="@drawable/arrow" />
</RelativeLayout>
J'ai aussi essayé d'ajouter Android:layout_centerVertical="true"
à la vue texte, mais le résultat est que la vue texte est alignée en bas sur les deux images. J'ai essayé ceci dans Android émulateur 4.2. Quelqu'un pourrait-il m'aider à ce sujet?
J'ai édité votre mise en page. Vérifiez ce code maintenant.
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:background="#33B5E5"
Android:padding="5dp" >
<ImageView
Android:id="@+id/icon"
Android:layout_width="50dp"
Android:layout_height="50dp"
Android:layout_alignParentLeft="true"
Android:layout_centerInParent="true"
Android:background="@Android:drawable/ic_lock_lock" />
<TextView
Android:id="@+id/func_text"
Android:layout_width="wrap_content"
Android:layout_height="100dp"
Android:layout_gravity="center_vertical"
Android:layout_toRightOf="@+id/icon"
Android:gravity="center"
Android:padding="5dp"
Android:text="This is my test string............"
Android:textColor="#FFFFFF" />
<ImageView
Android:layout_width="50dp"
Android:layout_height="50dp"
Android:layout_alignParentRight="true"
Android:layout_centerInParent="true"
Android:layout_gravity="center_vertical"
Android:src="@Android:drawable/ic_media_next" />
</RelativeLayout>
utilisation
Android:layout_centerVertical="true"
Si hauteur/largeur de la vue = wrap_content
utilisation:
Android:layout_centerHorizontal="true"
Android:layout_centerVertical="true"
Si hauteur/largeur de la vue = match_parent
utilisation:
Android:gravity="center_vertical|center_horizontal"
Essayez d’aligner le haut et le bas de la vue texte sur l’une des icônes. Cela fera en sorte que la vue texte partage la même hauteur, puis définissez gravity
sur center_vertical
pour que le texte à l'intérieur de la vue texte soit centré verticalement.
<TextView
Android:id="@+id/func_text" Android:layout_toRightOf="@id/icon"
Android:layout_alignTop="@id/icon" Android:layout_alignBottom="@id/icon"
Android:layout_width="wrap_content" Android:layout_height="wrap_content"
Android:gravity="center_vertical" />
Pour moi, je devais enlever
<item name="Android:gravity">center_vertical</item>
from RelativeLayout, la configuration des enfants fonctionnerait donc:
<item name="Android:layout_centerVertical">true</item>
Cela fonctionne pour moi.
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:id="@+id/rell_main_bg"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="#096d74" >
<ImageView
Android:layout_width="wrap_content"
Android:layout_height="match_parent"
Android:layout_centerVertical="true"
Android:layout_centerHorizontal="true"
Android:src="@drawable/img_logo_large"
Android:contentDescription="@null" />
</RelativeLayout>
Ceci peut-être parce que la vue texte est trop haute. Changez Android: layout_height de la vue en wrap_content ou utilisez
Android:gravity="center_vertical"
Ajout des deux Android:layout_centerInParent
et Android:layout_centerVertical
travaille pour moi au centre ImageView
à la fois vertical et horizontal:
<ImageView
..
Android:layout_centerInParent="true"
Android:layout_centerVertical="true"
/>