android 布局中 gravity 和 layout_gravity 属性
2015-07-04 23:11
561 查看
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只对组件自身有效。
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, 属性是可以多选的,用“|”分开。?
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:gravitygravity属性对应android:layout_gravity下面代码实现同上面布局文件实现的效果?相关文章推荐
- Android下的Junit单元测试
- Android5.1 - 通讯录建立群组
- android PopupWindow 自适应宽度
- android 通过获得dimens.xml中定义的大小来设置字体的大小
- android 内存优化方法
- Android开发使用MediaRecorder进行录音
- Android 内存管理 &Memory Leak & OOM 分析
- Android的帧动画补间动画,新手复习
- Android获取短信验证码
- 简单的应用Android的轮播图
- AndroidStudio For Mac 快捷键大全
- Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它)
- Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它) 分类: Android 2015-07-04 21:40 17人阅读 评论(0) 收藏
- Android 单选框的应用(新手篇)
- android四大组件之BroadCastReceiver的开发实例
- Android 4.4 模拟 home键、back键等keyEvent
- Android自定义SwitchButton左右滑动开关按钮控件
- 设计模式之Singleton(单态/单态)
- Android中Thread的使用之Handler机制
- 创建或打开android模拟器时遇到的问题,以及打开后遇到的Failed to install FragmentTest.apk on device 'emulator-5554': timeout