Il semble que vous souhaitiez placer vos éléments dans un parent avec layout_width="wrap_content"
et centrer le parent entier.
Quelque chose comme ça, peut-être?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView android:text="Content above..."
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<LinearLayout android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal">
<TextView android:text="One"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView android:text="Two"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView android:text="Three"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<TextView android:text="Content below..."
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
Rappelez-vous la différence entre gravity
et layout_gravity
. L'attribut gravity
fait référence au contenu de la vue. layout_gravity
(et tous les autres attributs préfixés par layout_
) fait référence à la disposition de la vue dans son parent.
Edit: Si vous cherchez à mettre en forme des éléments de ListView même, essayer quelque chose comme ceci que votre liste mise en page de l'article avec le ListView lui-même en utilisant layout_width="fill_parent"
et layout_height="fill_parent"
:
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:weightSum="2"
android:gravity="center">
<TextView android:id="@+id/text"
android:layout_weight="1"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
Modifier le contenu du TextView avec l'identifiant text
dans chaque élément de la liste de la manière habituelle. Le réglage minHeight
tiré du thème actuel fera en sorte qu'il reste une bonne taille pour le toucher.
Le centrage uniforme dans ce cas est géré par une combinaison de weightSum
et gravity
sur le LinearLayout et le layout_weight
sur le TextView. Le poids de TextView divisé par weightSum de son parent déterminera le pourcentage d'espace horizontal que le LinearLayout lui donnera. Dans l'exemple ci-dessus, il obtiendra la moitié de l'espace horizontal disponible, mais centré. Étant donné que ListView ne connaît jamais le contenu des éléments de liste qui ne sont pas actuellement à l'écran, il est impossible de mesurer le texte de chaque élément de votre adaptateur pour centrer parfaitement le contenu. Vous devrez l'approximer en utilisant une disposition d'élément de liste comme l'exemple ci-dessus.
Ceci centre les éléments indépendamment les uns des autres. Je voudrais que leurs premières lettres soient les unes sur les autres comme dans l'exemple. – Christian