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

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

更多相关文章

  1. Android扩大控件的点击区域
  2. android 系统调用大全
  3. Android中的4.0新布局控件:Space和GridLayout
  4. Android使用recycleView组件
  5. Android中的ListView内容刷新问题
  6. Android应用实例(一)之---有道辞典VZ.0
  7. Android的merge标签用法
  8. Android(安卓)开发之旅:view的几种布局方式及实践
  9. Android(安卓)第四天(晚上)

随机推荐

  1. PHP——MVC模式讲解与实例
  2. 什么是php递归
  3. PHP实现数据分页显示详细操作
  4. php和java的优势
  5. 什么是php扩展
  6. 在php中get和post区别
  7. php header的作用
  8. 什么是php工厂模式
  9. php join的用法
  10. php中define的用法