大家都知道 gravity 和 layout_gravity 的基本用法,不会的网上搜一下也无非都是:layout_gravity 表示组件自身在父组件中的位置 ,gravity 表示组件的子组件在组件中的位置。但有时候你会感觉 gravity 会比较好用,而 layout_gravity 往往会没有实现你想要的效果,这是为什么呢,看个例子:
例子 1:
效果:
例子 2:
效果:
其实例子 1 就比例子 2 多了一行代码:android:orientation="vertical"
可能大家已经明白了:如果父 layout 的属性中没有 android:orientation="vertical" 的话,默认是 horizontal 的,也就是说当父 layout 的 android:orientation 是 vertical 的时候,子控件中的 layout_gravity = "right" 生效了,当父 layout 的 android:orientation 是 horizontal 的时候,子控件中的 layout_gravity = "right" 失效了,总结一下:
当作为父 layout 的 LinearLayout 的属性为 android:orientation="vertical" 的时候,android:layout_gravity="?" 这里设为横向的时候才能生效。比如:left,right,center_horizontal 等
当作为父 layout 的 LinearLayout 的属性为 android:orientation="horizental" 的时候,android:layout_gravity="?" 这里设为纵向的时候才能生效。比如:top,bottom,center_vertical 等;