我的活动只有一个TextView,我试图让文本垂直居中但最终对齐到底部。我尝试改变几个属性,但没有运气。这是我目前所拥有的(Android 2.3):
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/llFlash"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="0dp" >
<TextView
android:id="@+id/tvFlash"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#ff0000"
android:padding="0dp"
android:textStyle="bold"
android:includeFontPadding="false"
android:gravity="center_vertical"
android:layout_centerInParent="true" />
</RelativeLayout>
修改 我实际上是在代码中设置文本大小,它是一个很大的值。如果将文本大小增加到屏幕的宽度(在横向模式下),则它显示为与屏幕底部对齐。但是,如果使用普通的文本大小(如20sp),它将显示为居中。这告诉我,当你将textsize增加到非常大时,看起来Android正在增加一些隐藏的内部填充(即使我确实将includeFontPadding设置为false)。
答案 0 :(得分:2)
对我来说很好,但是,
你为什么不用;
android:layout_centerVertical="true"
而不是
android:gravity="center_vertical"
android:layout_centerInParent="true"
答案 1 :(得分:1)
这似乎不是TextView的限制,而是Android处理大文本字体的方式。其他人也注意到了这一点:
答案 2 :(得分:0)
即使没有布局:重力,它对我来说也没问题。
android:layout_centerInParent="true"
或
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
您也可以将您的相对布局修改为
android:layout_width="match_parent"
android:layout_height="match_parent"
因为从API 8开始建议使用match_parent。
这是活动中唯一的布局吗?或者这是片段的一部分吗?
答案 3 :(得分:0)
首先,在主布局中创建另一个相对布局,然后将您的textview插入其中,之后,将gravity属性设置为居中;
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/llFlash"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="0dp" >
<RelativeLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3.5">
<TextView
android:id="@+id/ucontact"
android:layout_width="match_parent"
android:gravity="center"
android:text="0708453589"
android:layout_height="match_parent" />
</RelativeLayout>
</RelativeLayout>