当另一个视图位于其右侧时,layout_centerHorizo​​ntal项不居中

时间:2015-10-11 06:37:00

标签: android android-layout android-relativelayout

当我使用layout_centerHorizontal水平放置视图中的项目而其他项目位于其右侧时,它不会居中。

enter image description here

但是当我删除第二个项目时,它会移动到中心。

enter image description here

这是代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="4">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="6"
        android:gravity="center_horizontal">

    <TextView
        android:id="@+id/message"
        android:layout_width="240dp"
        android:layout_height="240dp"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="50dp"
        android:background="#13D372"/>

    <TextView
        android:id="@+id/message2"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_marginTop="50dp"
        android:layout_toRightOf="@id/message"
        android:background="#125632"
        />

    </RelativeLayout>

</LinearLayout>

1 个答案:

答案 0 :(得分:2)

使用android:gravity="center_horizontal"会将子项(您的两个TextView)放在其容器的水平中心。

从父级移除android:gravity="center_horizontal",并将android:layout_centerHorizontal="true"保留在您的子级布局(TextView)中,以便仅将其放在中心位置。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="4">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="6">

        <TextView
            android:id="@+id/message"
            android:layout_width="240dp"
            android:layout_height="240dp"
            android:layout_centerHorizontal="true"    <!--here-->
            android:layout_marginTop="50dp"
            android:background="#13D372"/>

        <TextView
            android:id="@+id/message2"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_marginTop="50dp"
            android:layout_toRightOf="@id/message"
            android:background="#125632"
            />

    </RelativeLayout>

</LinearLayout>