LinearLayout中的layout_weight属性,首先按照控件声明的宽度进行分配,总宽度-声明的宽度, 然后再将剩下的(总宽度-声明的宽度)按layout_weigh声明的比例加给子控件 (首先减去控件声明的尺寸,剩下的尺寸按比例分配) <LinearLayout android:weightSum="2" > <TextView android:layout_weight="1" /> </LinearLayout > 这样可以让单个控件定义占据父控件的一半,占总宽度1/2 android:baseLineAligned="false" 解决因基线导致的控件不对齐问题 android: layout_开头的都是交给父容器定义自身属性 android:没有layout_开头的都是根据控件本身定义自身的属性 控件宽度+父控件剩余宽度*比例
分配原则:
gravity: 自身
layout_gravity: 所在容器位置
LinerLayout weightSun属性 总比例
LinerLayout layout_weight属性分配原则
LinerLayout属性: baseLineAligned true/false 基线
textView没有对齐解决方式
避免layout_weight问题
当三个控件都是match_parent的时候
利用weightSum的属性,实现一个LinearLayout中只有一个TextView但是却占一半
所有layout_开头的都是交给父控件去分配的。所以layout_gravity是父控件中的位置,gravity是内部内容的位置,本身的属性。