如何在布局中居中显示TextView?

Ken*_*Ken 28 layout android center 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>
Run Code Online (Sandbox Code Playgroud)

Bra*_*rke 41

听起来你想要将文本居中TextView,而不是TextView布局中.

你已经明确地设定minWidthTextView,这很好.你已经尝试使用android:gravity="center_horizontal"TextView?NOT layout_gravity这是的重力TextView母体内,在这种情况下LinearLayout.


Ken*_*Ken 11

这是最终为我工作的:

        <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>
Run Code Online (Sandbox Code Playgroud)