■LinearLayout线性布局
1.概述:将其内的控件挨个按一定方向(水平或垂直)来排列,
不会自动换行而多了会溢出界面。
默认情况各个子控件水平挨个排布(从左上角开始)。
2.其的属性:
(1)排列方式(子控件排布方向)
属性:orientation——方法:setOrientation(int)——属性值:horizontal / vertical
作用:明确排布方向。
影响:子控件不同于父控件排布方向的layout_gravity属性值则失效。
(2)对齐方式(控制“内容”【子控件】的位置)
属性:gravity——方法:setGravity(int)
属性值:top顶对齐 / bottom底对齐 / left左对齐 / right右对齐
center中心对齐 / center_horizontal横向中心对齐 / center_vertical纵向中心对齐
fill填满对齐 / fill_horizontal水平方向填满 / fill_vertical垂直方向填满
clip_horizontal水平方向裁剪溢出部分 / clip_vertical垂直方向裁剪溢出部分
可以多个属性组合:left|center_vertical左侧垂直居中
作用:布置“子控件”的位置。
属性:baselineAligned——方法:setBaselineAligned(boolean)属性值:true / false
作用:使各个子控件内容基线在同一条线上。
(3)设分割条
属性:divider——方法:setDividerDrawable(drawable)
属性值:@drawable/...
(4)measureWithLargestChild(略)
3.其内子控件的属性:
(1)对齐方式(控制“在外”位置——相对于父控件内的位置)
属性:layout_gravity
属性值(同上面gravity的)
(2)所占权重(按比例分配布局方向上的剩余空间)
属性:layout_weight
属性值(int类型,不带单位)
巧用:
1.布局方向【X/Y】上各占平均大小——》每个子控件设置:
2.若仅仅想某个占所有剩余空间,只有它有layout_weight="1"就够了!
注意:
线性布局父容器在布局方向上的长度使用“match”或固定的量值(即非wrap)时,
其内子控件使用“layout_weight”属性才起作用。