Android gravity 与 layout_gravity 使用区别

1,331 阅读1分钟

一、简介

  • 两者都是设置对齐方式的属性,属性值相同。

    image.png

  • 不同之处:

    • gravity 是设置 自身内部元素 的对齐方式。

      案例:比如 TextView,则是设置 内部文字 的对齐方式。

      案例:比如 Layout 布局,则为设置 内部组件元素 的对齐方式。

    • layout_gravity 是设置 自身相当于父容器 的对齐方式。

      案例:比如 TextView,则是设置 自身在父容器 中的对齐方式。

    • gravitylayout_gravity 可以配合使用。

二、案例

  • 子元素 使用 gravity,则控制 自身内部元素对齐

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        >
        <TextView
            android:layout_width="150dp"
            android:layout_height="150dp"
            android:text="DZM_TEST"
            android:gravity="bottom"
            android:background="#ffc"/>
    </LinearLayout>
    

    image.png

  • 父容器 未使用 gravity,子元素 使用 layout_gravity,则子元素只会在父容器 上中下 的位置生效,左右是无法生效的。

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >
        <TextView
            android:layout_width="150dp"
            android:layout_height="150dp"
            android:text="DZM_TEST"
            android:layout_gravity="center_vertical"
            android:background="#ffc"/>
    </LinearLayout>
    

    image.png

  • 父容器 使用 gravity,子元素 使用 layout_gravity,则子元素会通过两者组合进行显示。

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_horizontal"
        >
        <TextView
            android:layout_width="150dp"
            android:layout_height="150dp"
            android:text="DZM_TEST"
            android:layout_gravity="center_vertical"
            android:background="#ffc"/>
    </LinearLayout>
    

    image.png