安卓布局中layout_gravity和gravity的区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chenyuan888/article/details/53759216

     在开发中,我们经常搞不清楚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"

写啦这么多,希望你明白他们的区别啦

猜你喜欢

转载自blog.csdn.net/chenyuan888/article/details/53759216
今日推荐