textview中文本的垂直居中不起作用

时间:2014-07-13 07:26:22

标签: android

我确信之前已经回答了这个问题,但我一直在搜索,无法找到解决我确切问题的答案,这是:

我在ImageView设置之上有一个TextView,如下所示:

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<ImageView
    android:id="@+id/imageForCustomAdapter"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/my_ball_3" />

<TextView
    android:id="@+id/textOnBall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="1dp"
    android:textColor="#000000"
    android:textSize="50dp"
    android:hint="10"
    android:layout_alignParentBottom="false"
    android:layout_centerInParent="true"
    android:layout_alignTop="@+id/imageForCustomAdapter"
    android:layout_alignLeft="@+id/imageForCustomAdapter"
    android:layout_alignBottom="@+id/imageForCustomAdapter"
    android:layout_alignRight="@+id/imageForCustomAdapter"
    android:gravity="center" />

</RelativeLayout>

TextView与ImageView对齐,使其大小相同,我希望文本在水平和垂直方向都居中。

Android Studio中的渲染显示它正确居中This Pic Shows That 但是当我真正在真实设备上运行应用程序时,文本只能水平居中。我已经尝试了android:gravity=的所有不同组合,但没有任何接缝可以工作。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我在前言中说我真的不喜欢RelativeLayout,这是一个很好的例子。它功能强大,但可能会让人感到困惑,简单也很重要。

您已经许多布局指令很容易相互冲突。尝试类似:

<FrameLayout
android:layout_width="wrap_content"
    android:layout_height="wrap_content"
>
<ImageView
    android:id="@+id/imageForCustomAdapter"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/my_ball_3" />

<TextView
    android:id="@+id/textOnBall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="#000000"
    android:textSize="50dp"
    android:hint="10"
    android:layout_gravity="center" />
</FrameLayout>

&#39; wrap_content&#39;在FrameLayout上很重要,顺便说一句。假设ImageView总是比TextView大,它将驱动父高度。如果TextView可能更大,请确保也将ImageView居中。

为什么它在工作室而不是在现实生活中工作,不知道。