我有这样的布局
<?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="match_parent"
android:padding="@dimen/DP_3">
<ImageView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/image"
android:layout_centerVertical="true"
android:text="xxx"/>
<TextView
android:id="@+id/custom_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"/>
<TextView
android:id="@+id/text"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="yyy"/>
</RelativeLayout>
我希望所有子元素都垂直放置在父元素 RelativeLayout 中,但是 layout_centerVertical="true" 成功了,而 layout_gravity="center_vertical" 什么也没做。我以为它们的意思相同,但实际上不是,我是不是没听懂?
最佳答案
layout_gravity
是LinearLayout
的属性,在RelativeLayout
中不起作用。
如果您将 RelativeLayout
容器更改为 LinearLayout
,则使用 android:layout_gravity="center_vertical"
将元素定位在中心位置
XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<ImageView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="xxx"
android:padding="5dip"/>
<TextView
android:id="@+id/custom_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="dsf"
android:padding="5dip"/>
<TextView
android:id="@+id/text"
android:padding="5dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="yyy" />
</LinearLayout>
输出:
引用链接:
关于android - layout_gravity ="center_vertical"和 layout_centerVertical ="true"有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25054168/