Android布局学习——android:gravity和android:layout_gravity的区别

版权所有,禁止匿名转载;禁止商业使用。

1.分别是什么?


android:gravity : 

定义了一个对象在X,Y坐标轴,在它自己的边界内,应该如何放置它的内容。是上(top)还是下(bottom),左(left)或是右(right)。



比如一个TextView,设置它的android:gravity,对它的内容的位置有影响。


android:layout_gravity :


标准的gravity常量,是子组件提供给它的父组件的。定义了子View在 封闭的布局(layout) 中在X,Y方向上应该如何被放置。


如一个方向是垂直的LinerLayout,布局里的TextView的layout_gravity对它在布局中的位置有影响。


如果需要设置多个gravity值,用"|"符号分隔。如

android:layout_gravity="right|bottom"
android:gravity="right|bottom"

2.区别


看名字就能看出一些区别:android:layout_gravity和layout有关。


android:gravity  设置 View的内容的gravity。


android:layout_gravity  设置View或Layout的在它父布局中的gravity。


3.Demo


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <LinearLayout
        android:id="@+id/linearLayout"
        android:layout_width="match_parent"
        android:layout_height="150dp"
        android:orientation="vertical">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:text="android:gravity用于设置View中内容相对于View组件的对齐方式"/>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:text="android:gravity=center"
            android:background="#ff0000"
            android:gravity="center"/>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:text="android:gravity=right|bottom"
            android:background="#00ff00"
            android:gravity="right|bottom"
            />
        </LinearLayout>
    <TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_below="@id/linearLayout"
        android:text="android:layout_gravity用于设置View组件相对于Container的对齐方式"/>
    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_below="@id/textView"
        android:orientation="vertical">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="left"
            android:text="android:layout_gravity=left"
            android:background="#ff0000"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:text="android:layout_gravity=right"
            android:background="#00ff00"
            />
        </LinearLayout>
    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_below="@id/linearLayout1"
        android:orientation="horizontal">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="top"
            android:text="android:layout_gravity=top"
            android:background="#ff0000"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:text="android:layout_gravity=bottom"
            android:background="#00ff00"
            />
    </LinearLayout>
</RelativeLayout>


0 0