C虾仔笔记 - LinearLayout线性布局

■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”属性才起作用。

你可能感兴趣的:(Android,-,ViewGroup)