在RelativeLayout中垂直居中TextView

时间:2015-02-01 13:31:31

标签: android xml android-layout

我试图在RelativeLayout中垂直居中TextView。 Android Studio的预览显示了我想要的布局:

Preview of Android Studio

但是我的手机显示了这个(我使用自定义字体):

What I get on Android

为什么TextView不在我的设备上居中?

XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="110dp"
    android:padding="10dp"
    android:background="@drawable/favourites_item_bg" >

    <RelativeLayout
        android:id="@+id/color"
        android:layout_width="90dp"
        android:layout_height="90dp"
        android:background="#63FF87" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_toRightOf="@+id/color"
        android:layout_toEndOf="@+id/color"
        android:padding="10dp">

        <TextView
            android:id="@+id/num"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="1."
            android:textStyle="bold"
            android:textSize="18sp"
            android:textColor="#000000"
            android:layout_alignParentTop="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true" />

        <TextView
            android:id="@+id/hex"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="#63FF87"
            android:textColor="#000000"
            android:layout_centerVertical="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true" />

    </RelativeLayout>

</RelativeLayout>

2 个答案:

答案 0 :(得分:0)

我删除了一个RelativeLayout并稍微重新排列了元素,现在它正在工作(感谢&#34; Der Golem&#34;的评论)。代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="110dp"
    android:background="@drawable/favourites_item_bg"
    android:padding="10dp">

    <RelativeLayout
        android:id="@+id/color"
        android:layout_width="90dp"
        android:layout_height="90dp"
        android:background="#63FF87" />

    <TextView
        android:id="@+id/num"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/color"
        android:layout_marginLeft="10dp"
        android:layout_marginStart="10dp"
        android:layout_marginTop="10dp"
        android:layout_toEndOf="@+id/color"
        android:layout_toRightOf="@+id/color"
        android:text="1."
        android:textColor="#000000"
        android:textSize="18sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/hex"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginLeft="10dp"
        android:layout_marginStart="10dp"
        android:layout_toEndOf="@+id/color"
        android:layout_toRightOf="@+id/color"
        android:text="#63FF87"
        android:textColor="#000000" />


</RelativeLayout>

答案 1 :(得分:0)

如果您需要在RelativeLayout内居中放置某个内容,请将此属性应用于该RelativeLayout的子级。

android:layout_centerInParent="true"