layout_gravity 为什么会失效

发布时间 2023-05-06 11:35:26作者: xiaowang_lj

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

 layout_gravity为什么会失效 - gefufeng的个人页面 - OSCHINA - 中文开源技术交流社区