layout_centerHorizontal 当另一个视图位于项目的右侧时项目未居中

layout_centerHorizontal item is not centered when another view is at the right side of it

当我使用 layout_centerHorizontal 将视图中的一个项目水平居中,而另一个项目位于它的右侧时,它没有居中。

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

这是代码:

<?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>

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

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

<?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>