web-dev-qa-db-ja.com

TextViewをレイアウトの中央に配置するにはどうすればよいですか?

複雑なレイアウトがあり、その一部にはラベルの中央に値があり、値の両側に+および-ボタンがあります。 「1」であれ「99」であれ、値がボタンの中央にくるようにします。 「99」のような2桁の数字の場合は正常に見えますが、1桁の場合は左寄せされます。その値を適切に中央に配置するにはどうすればよいですか?

これを行うレイアウトの一部を次に示します。

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

レイアウトのTextViewではなく、TextView内のテキストを中央に配置したいようです。

すでにminWidthTextViewを明示的に設定していますが、これは良いことです。 TextViewAndroid:gravity="center_horizontal"を使用してみましたか? NOT layout_gravityは、親内のTextViewの重力です。この場合はLinearLayoutです。

41

これが最終的に私のために働いたものです:

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

Android:layout_gravity="center_horizontal"は動作していません。

        Android:layout_gravity="center_horizontal"
        Android:layout_alignParentTop="true"
        Android:layout_centerHorizontal="true"
2
Oli

TextViewを中央に揃えるには、次の行を使用します。

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"/>
1
urnish