您的位置:首页 > 移动开发 > Android开发

安卓布局中layout_gravity和gravity的区别

2016-12-20 09:34 176 查看
     在开发中,我们经常搞不清楚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 布局