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

fif*_*fth 4 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>
Run Code Online (Sandbox Code Playgroud)

我希望所有的孩子垂直放置在父RelativeLayout中,但是,layout_centerVertical ="true"做了伎俩,但layout_gravity ="center_vertical"什么也没做.我以为他们有同样的意思,但不是真的,我想念了吗?

Mys*_*icϡ 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>
Run Code Online (Sandbox Code Playgroud)

输出:

在此输入图像描述

参考链接:

机器人:layout_gravity

机器人:layout_centerVertical


Fan*_*mas 5

嗯,这很简单:

layout_centerVertical="true"
Run Code Online (Sandbox Code Playgroud)

RelativeLayout中做了诀窍......

layout_gravity="center_vertical"
Run Code Online (Sandbox Code Playgroud)

适用于LinearLayout.