我有这样的布局
<?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 =&#34; true&#34; 做了这个伎俩,但 layout_gravity =&#34; center_vertical&#34; 什么也没做。我以为他们有同样的意思,但不是真的,我想念你吗?
答案 0 :(得分:7)
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>
输出:
参考链接:
答案 1 :(得分:5)
嗯,这很简单:
layout_centerVertical="true"
在 RelativeLayout
中完成了这个诀窍,而
layout_gravity="center_vertical"
适用于 LinearLayout 。