Android之android:layout_gravity和android:gravity属性的区别

本文详细解释了Android开发中gravity和layout_gravity属性的作用及区别,包括它们如何影响控件内部元素的位置以及控件自身在父控件中的位置,并特别说明了在LinearLayout布局中的特殊情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

gravity的中文意思就是”重心“,就是表示view横向和纵向的停靠位置


android:gravity:是对控件里的元素来说的,用来控制控件内部元素的显示位置。


android:layout_gravity:这个是对控件本身而言,用来控制自己在父控件中的位置。


2.属性值:

这两个属性可选的值有:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical。一个属性可以包含多个值,需用“|”分开我们主要来看看center_vertical和center_horizontal两个属性值,

center_vertical是指将对象在垂直方向上居中对齐,即在从上到下的方向上选择中间的位置放好

center_horizontal是指将对象水平方向上居中对齐,即在从左到右的方向上选择中间的位置放好

3.特殊情况

当我们采用LinearLayout布局时,有以下特殊情况需要我们注意:

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

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

想想也是可以理解的,老子的方向订好了,你只能是往前一点或者往后一点,想直接达到终点这不行,但是允许你出去找小朋友玩耍~~~

(3)有一个比较特殊的是center,不管是横向还是纵向的时候,它总有一个方向起作用.


另外,layout_gravity="center_vertical"和 layout_centerVertical="true"区别:

两者都表示当前控件在父容器的位置是垂直居中,

前者父容器一般是LinearLayout,后者的父容器只能是RelativeLayout。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值