android 布局中 gravity 和 layout_gravity 属性
来源:互联网 发布:手机游戏辅助软件 编辑:程序博客网 时间:2024/05/16 06:23
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 中有效:
1、对于 LinearLayout :
当 android:orientation=vertical (垂直) 时,只有水平方向的设置才起作用,垂直方向的设置不起作用。即:left,right,center_horizontal 是生效的。
当 android:orientation=horizontal (水平) 时,只有垂直方向的设置才起作用,水平方向的设置不起作用。即:top,bottom,center_vertical 是生效的。
2、对于 FrameLayout : 任意android:layout_gravity属性都有效,可以非常方便实现对组件的布局。 看个例子:整个布局使用了LinearLayout,其中在LinearLayout中添加了android:gravity=center_vertical属性,使得Button位于屏幕的水平中间。 因为LinearLayout的android:orientation=vertical,所以Button只能使用android:layout_gravity的属性只有三个,即:left,right,center_horizontal,这里使用了android:layout_gravity=right,使得Button靠右边。 然后看Button中的text,Button的width我故意加长了,这样可以清楚看出文字是居于Button的底部和右边,所以Button中android:gravity=right|bottom, 属性是可以多选的,用“|”分开。
通过Java代码来设置组件的位置:
setGravity()对应android:gravity
gravity属性对应android:layout_gravity
下面代码实现同上面布局文件实现的效果
<span style=
"font-family:Microsoft"
>Button button =
new
Button(
this
);
button.setText(test);
//设置Button中的文字位置,相当于Button布局属性中的android:gravity=right|bottom
button.setGravity(Gravity.BOTTOM|Gravity.RIGHT);
LinearLayout layout =
new
LinearLayout(
this
);
layout.setOrientation(LinearLayout.VERTICAL);
//LinearLayout必须设置方向,否则无法看到效果
//故意加长button长度,这里200的单位是px
LinearLayout.LayoutParams buttonParams =
new
LinearLayout.LayoutParams(
200
, LayoutParams.WRAP_CONTENT);
//相当于Button布局属性中的android:layout_gravity=right
buttonParams.gravity = Gravity.RIGHT;
//相当于这两句 button.setLayoutParams(buttonParams);
// layout.addView(button);
layout.addView(button, buttonParams);
//设置Button的位置,相当于LinearLayout布局属性中的android:gravity=center_vertical
layout.setGravity(Gravity.CENTER_VERTICAL);
setContentView(layout); </span>
- android 布局中 gravity 和 layout_gravity 属性
- android 布局中 gravity 和 layout_gravity 属性
- android布局属性中layout_gravity和gravity区别
- android布局中属性:scaleType、gravity、layout_gravity
- Android布局中layout_gravity和gravity区别
- 【Android布局】android:gravity 和 android:layout_Gravity属性 .
- Android布局android:gravity 和 android:layout_Gravity属性的区别
- 【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性
- 【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性
- 【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性
- 【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性
- 【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性
- 【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性
- 【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性
- 【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性
- 【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性
- 【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性
- 【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性
- Ubuntu上搭建Hadoop环境(单机模式+伪分布模式)
- HDU 1205吃糖果
- MFC 写计算器代码
- 解决vCenter Inventory Service stop 无法启动的问题
- html判断滚动条是否到达底部
- android 布局中 gravity 和 layout_gravity 属性
- 玛雅历
- 白板编程浅谈——Why, What, How
- 链式队列
- git 版本发布 (打tag)
- PADS中Flood和Hatch的区别
- swift的正则表达式(NSRegularExpression)
- loadView、viewDidLoad、initWithCoder、initWithNibName、awakeFromNib的调用时间及用法
- 健身控应用隐私政策