android - layout_gravity ="center_vertical"和 layout_centerVertical ="true"有什么区别

标签 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="true" 成功了,而 layout_gravity="center_vertical" 什么也没做。我以为它们的意思相同,但实际上不是,我是不是没听懂?

最佳答案

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

关于android - layout_gravity ="center_vertical"和 layout_centerVertical ="true"有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25054168/

相关文章:

java - 设置音源时MediaRecorder抛出异常(android开发)

android - 如何使我的应用程序全屏显示?

java - 将布局文件添加到类中(Java Android Studio)

android - 如何从字符串数组资源中检索图像值并使用该值设置背景

android - Material Complex UI with Coordinate layout + Tablayout + Viewpager +recyclerview

java - android - 动态添加按钮到自定义对话框

android - Android中如何删除ImageView的额外空间

Android:如何创建可重用组件?

Android - 谷歌图像搜索 API?

java - 从不同的 Activity 设置 TextView 文本(具有不同的布局)