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>
レイアウトのTextView
ではなく、TextView
内のテキストを中央に配置したいようです。
すでにminWidth
のTextView
を明示的に設定していますが、これは良いことです。 TextView
にAndroid:gravity="center_horizontal"
を使用してみましたか? NOT layout_gravity
は、親内のTextView
の重力です。この場合はLinearLayout
です。
これが最終的に私のために働いたものです:
<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>
Android:layout_gravity="center_horizontal"
は動作していません。
Android:layout_gravity="center_horizontal"
Android:layout_alignParentTop="true"
Android:layout_centerHorizontal="true"
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"/>