Android中gravity与layout_gravity的区别

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 fanxu

padding填充的意思,指的是view中的content与view边缘的距离,类似文本中的indent
而margin表示的是view的左边缘与parent view的左边缘的距离
margin一般用来描述控件间位置关系,而padding一般描述控件内容和控件的位置关系。 回复 更多评论
# widget 注意事项 2010-08-12 18:24 fanxu

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

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

因为桌面布局方向(由此,单元的尺寸)可以变化,按照拇指规则,你应该假设最坏情况单元尺寸是74像素高和宽。不过,你必须从最后的尺寸中减去2以把像素计算过程中产生的任何的整数舍入误差考虑在内。要找到像素密度无关的最小宽度和高度,使用这个公式:
(number of cells * 74) - 2
遵循这个公式,你应该使用72dp为每一个单元高度,294dp为四个单元宽度。
### 回答1: gravity是设置布局内部子元素的对齐方式,而layout_gravity是设置当前View在父布局的对齐方式。具体来说,gravity可以设置子元素在水平和垂直方向上的对齐方式,而layout_gravity则可以设置当前View在父布局的位置,例如上下左右居等。 ### 回答2: 在AndroidgravitylayoutGravity都是布局属性,用于设置视图或布局的对齐方式。不过它们有一些细微的区别。 首先,gravity是视图对象的属性,用于设置其内容的对齐方式。可以通过代码或者在xml布局文件使用android:gravity属性进行设置。例如,当一个TextView设置了gravity为center时,该TextView的文本内容将在垂直和水平方向上都居显示。 而layoutGravity是布局容器的属性,用于设置其子视图的对齐方式。只能通过在父容器的xml布局文件使用android:layout_gravity属性进行设置。例如,当一个LinearLayout设置了layout_gravity为center时,其的子视图将在垂直和水平方向上都以居的方式进行对齐。 总的来说,gravity主要用于设置视图本身的内容对齐方式,而layoutGravity主要用于设置子视图在父容器的对齐方式。 此外,还需要注意的是,gravitylayoutGravity对于不同的布局容器可能有不同的效果。比如在LinearLayoutgravity属性会使得整个布局都按照设置的对齐方式进行对齐,而layout_gravity属性只会对该子视图进行对齐。 ### 回答3: gravitylayoutGravity区别在于它们所属的对象不同。 在Androidgravity是一个View的属性,用来指定View的内容在它的边界内的对齐方式。它可以设置为左对齐、右对齐、居、顶部对齐、底部对齐等。gravity属性对应的值有left、right、center、top、bottom等。 而layoutGravity是一个父容器(如LinearLayout)的属性,用来指定它的子View在父容器内的对齐方式。它的作用是控制子View在父容器内的位置,而不是控制子View内部的内容对其方式。layoutGravity属性对应的值有top、bottom、left、right、center等。 在XML布局gravity属性是用来控制View内部的内容对齐方式,而layout_gravity属性是用来控制View在父容器内的位置。例如,在一个LinearLayout容器内,使用layout_gravity属性可以将子View设置为居或者靠右对齐等。而在子View内部使用gravity属性可以实现文本居、图标居等效果。 总结来说,gravity用于控制View内部内容的对齐方式,而layoutGravity用于控制子View在父容器内的位置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值