大家都知道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等;