Подтвердить что ты не робот

Как вы создаете TextView в макете?

У меня сложный макет, часть которого имеет значение, центрированное над меткой, с кнопками + и - по обе стороны от значения. Я хочу, чтобы значение центрировалось между кнопками, будь то "1" или "99". Он выглядит отлично, когда он представляет собой 2-значное число, например "99", но когда он составляет одну цифру, номер выравнивается по левому краю. Как правильно центрировать это значение?

Вот часть моего макета, которая делает это:

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

Ответ 1

Похоже, вы хотите центрировать текст внутри TextView, а не TextView в макете.

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

Ответ 2

Вот что, наконец, помогло мне:

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

Ответ 3

Если android:layout_gravity="center_horizontal" не работает, попробуйте:

        android:layout_gravity="center_horizontal"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"

Ответ 4

Просто используйте нижнюю строку, которая отлично работает, чтобы выровнять текст в центре.

Android: layout_gravity = "center_horizontal"

Пример..

<TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="My Text View"
            android:layout_gravity="center_horizontal"
            android:textSize="28sp"

/" >