Comment centrer un TextView dans Layout?
j'ai un plan complexe, qui dispose d'une valeur centrée sur l'étiquette, avec les touches + et - de chaque côté de la valeur. Je veux que la valeur soit centrée entre les boutons, que ce soit "1" ou "99". Il semble bien, quand il est à 2 chiffres comme "99", mais quand c'est un seul chiffre le nombre est justifié à gauche. Comment puis-je centrer correctement cette valeur?
Voici la partie de ma mise en page qui fait ceci:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/runway_label"
android:layout_centerHorizontal="true"
android:orientation="horizontal">
<ImageView
android:id="@+id/dec_runway_button"
android:src="@drawable/minus_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"/>
<TextView
android:id="@+id/runway_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFFFFF"
android:textStyle="bold"
android:textSize="40.0sp"
android:minWidth="50sp"
android:layout_centerInParent="true"
android:layout_gravity="center"
android:shadowColor="#333333"
android:shadowDx="2.0"
android:shadowDy="2.0"
android:shadowRadius="3.0" />
<ImageView
android:id="@+id/inc_runway_button"
android:src="@drawable/plus_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"/>
</LinearLayout>
4 réponses
On dirait que vous voulez centrer le texte dans le TextView
, pas TextView
dans la disposition.
vous définissez déjà explicitement le minWidth
TextView
, ce qui est bon. Avez-vous essayé d'utiliser android:gravity="center_horizontal"
pour les TextView
? PAS layout_gravity
qui est la gravité de la TextView
au sein du parent, dans ce cas LinearLayout
.
Voici ce qui a fonctionné pour moi:
<RelativeLayout android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true">
<TextView android:id="@+id/runway_label"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true" android:gravity="center_horizontal"
android:minWidth="110sp" android:textColor="#66CCFF"
android:textStyle="bold" android:textSize="15sp" android:text="@string/runway_label" />
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/runway_label"
android:layout_centerHorizontal="true"
android:orientation="horizontal">
<ImageView android:id="@+id/dec_runway_button" android:src="@drawable/minus_button"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical"/>
<TextView android:id="@+id/runway_value"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:textColor="#FFFFFF"
android:textStyle="bold" android:textSize="40.0sp"
android:minWidth="50sp"
android:layout_centerInParent="true"
android:layout_gravity="center"
android:shadowColor="#333333" android:shadowDx="2.0"
android:shadowDy="2.0" android:shadowRadius="3.0" />
<ImageView android:id="@+id/inc_runway_button" android:src="@drawable/plus_button"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical"/>
</LinearLayout>
</RelativeLayout>
Si android:layout_gravity="center_horizontal"
ne fonctionne pas, essayez:
android:layout_gravity="center_horizontal"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
utilisez juste en dessous de la ligne..qui fonctionne très bien pour aligner votre TextView
dans le centre.
android:layout_gravity="center_horizontal"
Exemple..
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="My Text View"
android:layout_gravity="center_horizontal"
android:textSize="28sp"/>