安卓布局中layout_gravity和gravity的区别
在开发中,我们经常搞不清楚layout_gravity和gravity的区别,有时想居中得试很多次,包括干了几年开发的也可能是这样
其实gravity相当于是说自己的内容跟自己
android:gravity 属性是对该view中内容的限定.比如一个button 上面的text. 你可以设置该text 相对于view的靠左,靠右等位置.
android:layout_gravity是用来设置该view相对与父view 的位置.比如一个button 在linearlayout里,你想把该button放在linearlayout里靠左、靠右等位置就可以通过该属性设置.
其实这个东西跟我们学习padding和margin相似,padding相当于android:gravity,margin相当于layout_gravity,前者是内容相对于自身,后者 是自身相对于父容器,其实一般情况前,当父容器是线性布局时,他的子view中才会有layout_gravity这个属性接下来看下布局文件和效果加深理解
效果如下:
在代码中我们可以看到,在一个绿色的线性布局中,里面有一个蓝色背景的textview,线性布局中有个gravity = center的属性,他的作用的把他里面的内容textview居中,对于线性布局而言,子view就是他的内容,对于textview或者button而言,文字就是他的内容,在textview中,gravity=center相当于是让文字居中
接下来我把布局改一下再看效果:
通过这个效果图我们发现 ,在线性布局中,因为要么水平要么垂直,当在子view中设置
android:layout_gravity="center"
时,其实不是在正中间,要么在水平要么在垂直中间,如果你想要子view在父容器中间,那么需要在父容器中设置gravity="center"
写啦这么多,希望你明白他们的区别啦
更多相关文章
- Android扩大控件的点击区域
- android 系统调用大全
- Android中的4.0新布局控件:Space和GridLayout
- Android使用recycleView组件
- Android中的ListView内容刷新问题
- Android应用实例(一)之---有道辞典VZ.0
- Android的merge标签用法
- Android(安卓)开发之旅:view的几种布局方式及实践
- Android(安卓)第四天(晚上)