Android - Центр TextView Горизонтально в LinearLayout
У меня есть следующий основной макет
<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 правильный, но текст выравнивается влево. Textview занимает всю ширину родителя, а textview - в центре. Не знаете, в чем проблема...
Ответы
Ответ 1
Что происходит, так как TextView заполняет всю ширину внутреннего LinearLayout, он уже находится в горизонтальном центре макета. Когда вы используете android:layout_gravity
, он помещает виджет в целом в указанную гравитацию. Вместо того, чтобы разместить весь центр виджета, что вы действительно пытаетесь сделать, это разместить содержимое в центре, которое может быть выполнено с помощью android:gravity="center_horizontal"
, и атрибут android:layout_gravity
можно удалить.
Ответ 2
<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:gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge"
android:padding="10dp"
android:text="HELLO WORLD" />
</LinearLayout>
Ответ 3
Если вы установили <TextView>
в центр в <Linearlayout>
, сначала положите android:layout_width="fill_parent"
обязательный
Нет необходимости использовать другую гравитацию
<LinearLayout
android:layout_toRightOf="@+id/linear_profile"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="vertical"
android:gravity="center_horizontal">
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="It's.hhhhhhhh...."
android:textColor="@color/Black"
/>
</LinearLayout>
Ответ 4
Используйте android:gravity="center"
в TextView
вместо layout_gravity
.