layout的作用,android:gravity和android:layout_gravity的区别

Android布局属性详解
本文详细解释了Android开发中android:gravity和android:layout_gravity的区别与用法。android:gravity用于控制控件内部元素的位置,如文本在按钮内的对齐方式;而android:layout_gravity则决定了控件自身在父布局中的位置。
学习Android的过程中不免会发现类似于android:xxx和android:layout_xxx这样的属性,那么他们有什么区别呢?
 
 我们就以android:gravity和android:layout_gravity为例探讨一下

 android:gravity :这个是针对控件里的元素来说的,用来控制元素在该控件里的显示位置。例如,在一个Button按钮控件中设置如下两个属性,android:gravity="left"和android:text="提交",这时Button上的文字“提交”将会位于Button的左部。

                                                
   
                                         Specifies how to align the text by the view's x- and/or y-axis          
                                                when the text is smaller than the view. [flag]                                指定当文本小于视图时如何由视图的x和/或y轴对齐文本。[标志]
                      
                                 
                    也就是说: android:gravity用来指定控件中元素显示的位置

              

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 

         android:layout_gravity:  用来指定当前组件在其父窗体中的位置
            
        




                Standard gravity constant that a child supplies to its parent.    子组件向其母体提供的标准重力常数。[标志]
                                          

所以说:有了layout就是自组件相对于父组件而言,没有就是组件相对于其内部组件而言!

注意:这里所说的组件和控件是指一切的Android标签,还有有android修饰的属性

Android 布局中,`android:layout_gravity` `android:gravity` 是两个常被混淆的属性,它们虽然都与“对齐”有关,但作用对象不同。 --- ### ✅ `android:layout_gravity` - **作用对象**:**当前控件本身**,用于控制**该控件在其父布局中的对齐方式**。 - **适用范围**:所有 `View` 的子类(如 `Button`、`TextView`、`LinearLayout` 等)。 - **示例**: ```xml <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="按钮" android:layout_gravity="center" /> ``` - 表示这个按钮在其父布局中居中显示。 --- ### ✅ `android:gravity` - **作用对象**:**控件内部的内容**,用于控制**内容在其内部的对齐方式**。 - **适用范围**:主要用在容器类控件(如 `LinearLayout`、`TextView`、`FrameLayout` 等)。 - **示例**: ```xml <LinearLayout android:layout_width="200dp" android:layout_height="100dp" android:gravity="center"> <TextView android:text="文本" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> ``` - 表示 `LinearLayout` 内部的内容(TextView)居中显示。 --- ### 🔁 举个形象的对比 | 属性 | 作用对象 | 举例 | |------|----------|------| | `android:layout_gravity` | 控件自己 | 我(按钮)在父布局里靠右 | | `android:gravity` | 控件内部内容 | 我(LinearLayout)里面的子控件居中 | --- ### 🧪 实际布局示例 ```xml <LinearLayout android:layout_width="match_parent" android:layout_height="100dp" android:orientation="vertical" android:background="#EEE"> <TextView android:layout_width="100dp" android:layout_height="50dp" android:text="layout_gravity" android:layout_gravity="right" android:background="#FF9900" /> <TextView android:layout_width="100dp" android:layout_height="50dp" android:text="gravity" android:gravity="right" android:background="#99FF00" /> </LinearLayout> ``` - 第一个 TextView 会显示在父布局右侧(因为用了 `layout_gravity`)。 - 第二个 TextView 内部文字靠右显示(因为用了 `gravity`)。 --- ### ✅ 总结记忆技巧: - `layout_gravity`:**我要在父布局中怎么摆**。 - `gravity`:**我里面的内容怎么摆**。 ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值