layout_gravity =“center_vertical”和layout_centerVertical =“true”之间的区别是什么?

时间:2014-07-31 08:28:05

标签: android android-layout

我有这样的布局

<?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; 什么也没做。我以为他们有同样的意思,但不是真的,我想念你吗?

2 个答案:

答案 0 :(得分:7)

layout_gravityLinearLayout的属性,它不会在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>

输出:

enter image description here

参考链接:

android:layout_gravity

android:layout_centerVertical

答案 1 :(得分:5)

嗯,这很简单:

layout_centerVertical="true"

RelativeLayout

中完成了这个诀窍

,而

layout_gravity="center_vertical"

适用于 LinearLayout

相关问题