30

私は複雑なレイアウトを持っています。その一部は、値の両側に + と - のボタンがあり、ラベルの中央に値が配置されています。「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>
4

4 に答える 4

43

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

あなたはすでに の を明示的に設定していますminWidthTextViewこれは良いことです。を使ってみandroid:gravity="center_horizontal"ましたTextViewか?この場合、親内layout_gravityの重力ではありません。TextViewLinearLayout

于 2010-05-06T21:26:15.867 に答える
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>
于 2010-05-13T18:43:29.090 に答える
2

機能しない場合android:layout_gravity="center_horizontal"は、次を試してください。

        android:layout_gravity="center_horizontal"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
于 2016-05-17T21:24:21.277 に答える
2

下の行を使用するだけで、中央に配置するのにうまく機能します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"/>
于 2015-08-24T13:14:16.710 に答える