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 устанавливается по центру. Не уверен, в чем проблема...

704   5  

5 ответов:

что происходит, так как TextView заполняет весь ширина внутреннего LinearLayout он уже находится в горизонтальном центре планировка. Когда вы используете android:layout_gravity Он помещает виджет, в целом, в указанной тяжести. Вместо размещения всего центра виджета то, что вы действительно пытаетесь сделать, это разместить контент в центре, который может быть достигнуто с android:gravity="center_horizontal" и android:layout_gravity атрибут может быть удален.

<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>

если вы устанавливаете <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>

использовать android:gravity="center" на TextView вместо layout_gravity.

просто использовать: android: layout_centerHorizontal= "true"

он поместит весь textview в центр

Comments

    Ничего не найдено.