当我使用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>
答案 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>