Android中gravity与layout_gravity的区别

本文详细解析了Android中LinearLayout的两个关键属性:android:gravity与android:layout_gravity的区别及用法,并通过实例展示了如何设置视图组件内的内容对齐及组件本身在父容器中的位置。

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

LinearLayout有两个非常相似的属性:android:gravity与android:layout_gravity。他们的区别在于:android:gravity用于设置View组件的对齐方式,而android:layout_gravity用于设置Container组件的对齐方式。

举个例子,我们可以通过设置android:gravity="center"来让EditText中的文字在EditText组件中居中显示;同时我们设置EditText的android:layout_gravity="right"来让EditText组件在LinearLayout中居中显示。来实践以下:


正如我们所看到的,在EditText中,其中的文字已经居中显示了,而EditText组件自己也对齐到了LinearLayout的右侧。

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <EditText 
        android:layout_width="wrap_content" 
        android:gravity="center" 
        android:layout_height="wrap_content" 
        android:text="one" 
        android:layout_gravity="right"/> 
</LinearLayout>

这两个属性也可以用于 Framlayout Textview 等等,表示的意思大同小异

posted on 2010-08-11 11:50 fanxu 阅读(83) 评论(3)编辑收藏

评论

android:gravity 属性是对该view 内容的限定.比如一个button 上面的text. 你可以设置该text 在view的靠左,靠右等位置.该属性就干了这个. 

android:layout_gravity是用来设置该view相对与起父view 的位置.比如一个button 在linearlayout里,你想把该button放在靠左  靠右等位置就可以通过该属性设置. 


这样就解释了,有什么我们弄个最外布局,然后里面包了几个布局,如果要使这几个布局都靠底,就可以在最外布局的属性里设置androi:gravity="botton" 因为gravity是对里面的内容起作用.       

Padding 与 margin 区别 2010-08-12 16:11

padding填充的意思,指的是view中的content与view边缘的距离,类似文本中的indent
而margin表示的是view的左边缘与parent view的左边缘的距离
margin一般用来描述控件间位置关系,而padding一般描述控件内容和控件的位置关系。       

widget 注意事项 2010-08-12 18:24

◆minWidth 和minHeight 属性的值指定了这个App Widget布局需要的最小区域。

缺省的App Widgets所在窗口的桌面位置基于有确切高度和宽度的单元网格。如果App Widget的最小长宽和这些网格单元的尺寸不匹配,那么这个App Widget将收缩到最接近的单元尺寸。(参见App Widget Design Guidelines 以获取更多关于桌面单元尺寸的信息)

因为桌面布局方向(由此,单元的尺寸)可以变化,按照拇指规则,你应该假设最坏情况单元尺寸是74像素高和宽。不过,你必须从最后的尺寸中减去2以把像素计算过程中产生的任何的整数舍入误差考虑在内。要找到像素密度无关的最小宽度和高度,使用这个公式:
(number of cells * 74) - 2
遵循这个公式,你应该使用72dp为每一个单元高度,294dp为四个单元宽度。

# re: Android中gravity与layout_gravity的区别 2010-08-12 15:14  fanxu
### Android 开发中的 `gravity` 和 `layout_gravity` 属性区别Android 布局设计中,`gravity` 和 `layout_gravity` 是两个用于控制视图内子元素位置的重要属性。 #### Gravity 属性 `gravity` 控制的是 **容器内部的内容** 如何对其自身的子元素进行排列。例如,在一个按钮或文本框里设置文字的位置。此属性适用于任何可以包含其他组件的父级布局[^1]。 对于 TextView 或 Button 这样的控件来说,当设置了 `gravity="center"` 后,其内的文本将会居中显示: ```xml <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Click Me!" android:gravity="center"/> ``` #### Layout_Gravity 属性 而 `layout_gravity` 则决定了该 View 自身相对于它的父容器应该如何放置。它影响着整个视图对象在整个屏幕上的定位方式。比如在一个 LinearLayout 中定义了一个按钮并给定了 `layout_gravity="bottom"` ,那么这个按钮就会被固定到线性布局底部[^2]。 下面的例子展示了如何通过 `RelativeLayout` 使用 `layout_gravity` 来调整子项的位置: ```xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:id="@+id/bottom_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Bottom Button" android:layout_alignParentBottom="true"/> </RelativeLayout> ``` 综上所述,理解这两个概念的关键在于区分它们作用的对象不同——一个是针对容器里面的内容(`gravity`);另一个是指定当前视图在其父容器里的摆放位置 (`layout_gravity`)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值