android gravity 代码,android:layout_gravity和android:gravity属性的区别

android:gravity / android:layout_gravity区别:

android:gravity 是设置该view类里面的内容相对于该view的位置,例如设置button里面的text相对于view的靠左,居中等位置。(也可以在Layout布局属性中添加,设置Layout中组件的位置)

android:layout_gravity 是用来设置该view相对与父view的位置,例如设置button在layout里面的相对位置:屏幕居中,水平居中等。

即android:gravity用于设置View中内容相对于View组件的对齐方式,而android:layout_gravity用于设置View组件相对于Container的对齐方式。

说的再直白点,就是android:gravity只对该组件内的东西有效,android:layout_gravity只对组件自身有效

android:layout_gravity 只在 LinearLayout 和 FrameLayout 中有效:

①对于 LinearLayout :

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

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

②对于 FrameLayout :

任意android:layout_gravity属性都有效,可以非常方便实现对组件的布局。

我们来看我们在项目中如何实现下面的这样一个布局:

57997fb9306a857ab62b45dc3ba2fa7c.png

我们有个一个标题栏,我们可以使用anctionbar来实现

其中+表示添加联系人,通信录要居中

我们如何实现了

假设:我们在外面先定义一个线性布局,水平排列

其中在定义两个线性布局,但是这样我们无法使用

android:layout_gravity="center_horizontal">因为父控件是水平方式的,我们就无法让通信录居中

下面我们如何让通信录居中了,我们可以把最外面的布局定义为相对布局:

代码如下:

android:layout_width="fill_parent"

android:layout_height="48dp"

android:background="#e7e7e7"

android:layout_gravity="center_horizontal">

android:id="@+id/add"

android:layout_width="25dp"

android:layout_height="25dp"

android:background="@drawable/add1"

android:layout_marginLeft="20dp"

android:layout_centerVertical="true"/>

android:layout_width="100dp"

android:layout_height="fill_parent"

android:text="通信录"

android:textColor="#333333"

android:gravity="center"

android:textSize="25sp"

android:layout_centerHorizontal="true"

/>

这样我们可以让添加联系人垂直居中显示,通讯录水平方向居中显示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值