У меня следующий базовый макет
<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>
Кажется, что xml правильный, но текст выровнен по левому краю. Текстовое представление занимает всю ширину родителя, а текстовое представление устанавливается по центру. Не уверен, в чем проблема ...
android
android-layout
android-linearlayout
layout-gravity
Джейк Уилсон
источник
источник
Ответы:
Происходит то, что поскольку TextView заполняет всю ширину внутреннего LinearLayout, он уже находится в центре горизонтального макета . При использовании
android:layout_gravity
он помещает виджет в целом в заданную силу тяжести. Вместо того, чтобы размещать весь центр виджетов, вы на самом деле пытаетесь разместить контент в центре, что может быть выполнено с помощью,android:gravity="center_horizontal"
аandroid:layout_gravity
атрибут может быть удален.источник
android:layout_width
будет иметь то же значение (после макета). Так как ширина TextView равна с внутренней LinearLayout TextView эффективно имеетandroid:layout_gravity
значениеleft
,right
иcenter
в то же самое время.ImageView
негоlayout_gravity
и дляTextView
негоgravity
- то, что только работает. Андроид отличный! Спасибо всем красивым SO сообщениям, без которых развитие было просто невозможно.android:layout_width="match_parent"
источник
Если вы установите
<TextView>
по центру,<Linearlayout>
то сначала установитеandroid:layout_width="fill_parent"
обязательноеНет необходимости использовать какую-либо другую гравитацию
источник
Использование
android:gravity="center"
вTextView
вместоlayout_gravity
.источник
Просто используйте: android: layout_centerHorizontal = "true"
Это поместит все текстовое изображение в центр
источник