J'ai la disposition de base suivante
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/title_bar_background">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:textAppearance="?android:attr/textAppearanceLarge"
android:padding="10dp"
android:text="HELLO WORLD" />
</LinearLayout>
<LinearLayout>
Il semble que le xml soit correct, mais le texte est aligné à gauche. La vue de texte occupe toute la largeur du parent et la vue de texte est définie pour être centrée. Je ne sais pas quel est le problème ...
android
android-layout
android-linearlayout
layout-gravity
Jake Wilson
la source
la source
Réponses:
Ce qui se passe, c'est que puisque le TextView remplit toute la largeur du LinearLayout interne, il est déjà au centre horizontal de la disposition . Lorsque vous l'utilisez,
android:layout_gravity
il place le widget, dans son ensemble, dans la gravité spécifiée. Au lieu de placer tout le centre du widget, ce que vous essayez vraiment de faire est de placer le contenu au centre, ce qui peut être accompli avecandroid:gravity="center_horizontal"
et l'android:layout_gravity
attribut peut être supprimé.la source
android:layout_width
aura la même valeur (après mise en page). Etant donné que la largeur de la TextView est égale à la LinearLayout avec de l'intérieur du TextView a effectivement lesandroid:layout_gravity
valeurs deleft
,right
etcenter
en même temps.ImageView
ellelayout_gravity
et pourTextView
elle,gravity
c'est ce qui ne fonctionne que. Android est génial! Merci à tous les beaux articles SO sans lesquels le développement était tout simplement impossible.android:layout_width="match_parent"
la source
Si vous placez
<TextView>
au centre,<Linearlayout>
mettez d'abordandroid:layout_width="fill_parent"
obligatoirePas besoin d'utiliser une autre gravité
la source
Utilisez
android:gravity="center"
auTextView
lieu delayout_gravity
.la source
Utilisez simplement: android: layout_centerHorizontal = "true"
Cela mettra toute la vue de texte au centre
la source