I have a complex layout, part of which features a value centered over a label, with + and - buttons on either side of the value. I want the value to center between the buttons, whether it is "1" or "99". It looks fine when it's a 2-digit number like "99", but when it's a single digit the number is left-justified. How do I properly center that value?
Here's the portion of my layout that does this:
<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>
It sounds like you want to center the text within the TextView
, not the TextView
in the Layout.
You're already explicitly setting the minWidth
of the TextView
, which is good. Have you tried using android:gravity="center_horizontal"
for the TextView
? NOT layout_gravity
which is the gravity of the TextView
within the parent, in this case LinearLayout
.