layout_gravity为什么会失效

大家都知道gravity和layout_gravity的基本用法,不会的网上搜一下也无非都是:layout_gravity 表示组件自身在父组件中的位置 ,gravity表示组件的子组件在组件中的位置。但有时候你会感觉gravity会比较好用,而layout_gravity往往会没有实现你想要的效果,这是为什么呢,看个例子:

例子1:

layout_gravity为什么会失效

效果:

layout_gravity为什么会失效

例子2:

layout_gravity为什么会失效

效果:

layout_gravity为什么会失效

其实例子1就比例子2多了一行代码:android:orientation="vertical" 

可能大家已经明白了:如果父layout的属性中没有android:orientation="vertical" 的话,默认是horizontal的,也就是说当父layout的android:orientation是vertical的时候,子控件中的layout_gravity = "right"生效了,当父layoutandroid: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等;


转载于:https://my.oschina.net/gef/blog/542891