1

我的活动只有一个 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>

编辑: 我实际上是在代码中设置 textsize,它是一个很大的值。如果 textsize 增加到屏幕的宽度(在横向模式下),则它看起来与屏幕底部对齐。但是,如果您使用正常的文本大小(如 20sp),它将显示为居中。这告诉我,当您将 textsize 增加到非常大时,Android 似乎正在增加一些隐藏的内部填充(即使我确实将 includeFontPadding 设置为 false)。

4

4 回答 4

2

在我看来很好,但是,

你为什么不使用;

android:layout_centerVertical="true"

代替

android:gravity="center_vertical"
android:layout_centerInParent="true"
于 2013-07-31T06:31:22.007 回答
1

这似乎不是 TextView 的限制,而是 Android 处理大文本字体的方式。其他人也注意到了这一点:

https://stackoverflow.com/a/4769205/753632

于 2013-07-31T06:43:08.117 回答
0

即使没有 layout:gravity,我也觉得没问题。

android:layout_centerInParent="true"

或者

android:layout_centerVertical="true"
android:layout_centerHorizontal="true"

您还可以将您的相对布局修改为

android:layout_width="match_parent"
android:layout_height="match_parent"

由于 match_parent 从 API 8 开始更可取。

这是活动中唯一的布局吗?或者这是片段的一部分吗?

于 2013-07-31T06:40:25.940 回答
0

首先,在主布局中创建另一个相对布局,然后在里面插入你的文本视图,然后,像这样将重力属性设置为中心;

<?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>
于 2020-03-29T08:42:04.427 回答