如何在布局中居中TextView?
问题描述:
我有一个复杂的布局,其中的一部分特征是一个以标签为中心的值,在值的两边都有+和 - 按钮。我希望值位于按钮之间,无论是“1”还是“99”。它看起来很好,当它是一个2位数字如“99”时,但是当它是一个数字时,该数字是左对齐的。我如何正确地集中这个价值?如何在布局中居中TextView?
下面是做到这一点我布局的一部分:
<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
在布局。
您已经明确设置了TextView
的minWidth
,这很好。您是否尝试过使用android:gravity="center_horizontal"
作为TextView
? 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>
答
只需要用下面line..which工作正常,结合你的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"/>
答
如果android:layout_gravity="center_horizontal"
不工作的尝试:
android:layout_gravity="center_horizontal"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
layout_gravity只适用于LinearLayout中。 – Karan 2010-05-07 04:31:01
你说得对,我倒退了。我会删除那一点。 – 2010-05-07 14:36:47
yes android:layout_gravity =“center_horizontal”works !!!! – 2013-02-15 05:17:42