您的位置:首页 > 移动开发 > Android开发

android:layout_gravity 和android:gravity 区别 -------浅谈

2016-01-13 23:28 597 查看
android:gravity是调整元素本身的内容或元素包含的子元素显示的位置,默认是显示在左侧

android:layout_gravity是相对与它的父元素说的,说明元素显示在父元素的什么位置。

比如说Button: android:layout_gravity 表示按钮在界面上的位置。 android:gravity表示Button上的字在button上的位置。

举个例子:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="right|bottom">
<Button
android:layout_width="150dip"
android:layout_height="150dip"
android:text="New Button3"
android:layout_gravity="right|top"
android:gravity="bottom|center_horizontal"
android:id="@+id/button3"
/>

<Button
android:layout_width="150dip"
android:layout_height="150dip"
android:text="New Button2"

android:background="#0f0"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal|top"
android:id="@+id/button2" />

<Button
android:layout_width="150dip"
android:layout_height="150dip"
android:background="#0ff"
android:text="New Button1"
android:gravity="right|center_vertical"
android:layout_gravity="left"
android:id="@+id/button" />
</LinearLayout>


实现的效果图如下:



注意:

对于 LinearLayout

当 android:orientation="vertical" 时, 只有水平方向的设置才起作用,垂直方向的设置不起作用。即:left,right,center_horizontal 是生效的。

当 android:orientation="horizontal" 时, 只有垂直方向的设置才起作用,水平方向的设置不起作用。即:top,bottom,center_vertical 是生效的。

对于RelativeLayout

是没有android:layout_gravity属性的,如要设置必须使用android:layout_centerInParent或android:layout_centerHorizontal或android:layout_centerVertical

对于AbsoluteLayout

是没有android:layout_gravity属性的,只能设置x、y的位置

对于FrameLayout

设置center_vertical是垂直居中,而center_horizontal是水平居中,而center则是水平和垂直都居中

对于TableLayout

每个元素都是一行,设置android:layout_gravit属性没有效果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: