记一次安卓(Kotlin)-AndroidUI必知必会_常用的基础布局容器_10

216 阅读3分钟

Android UI

- 基础容器
    - LinearLayout线性布局
    - RelativeLayout相对布局
    - FrameLayout帧布局
- 基础控件
    - TextView文本
    - Button按钮
    - ImageeView图像
    - Tab选项卡
- 高级控件
    - RecyclerView
        - 列表
        - 网格
        - 瀑布
        
基础布局容器
  • LinearLayout线性布局:横着或者竖着按顺序排列
  • RelativeLayout相对布局:起始坐标是屏幕左上角,以同级或上级为参考系定位位置
  • FrameLayout帧布局:像千层饼一样,一层压着一层.
  • ConstraintLayout约束布局:Google于2016年发布的一种布局方式,它不在android的基础api包里,需要额外引入.

1.线性布局LinearLayout

常用属性可选值说明
orientation1.vertical:垂直排列;2.horizontal:水平排列布局排列方向
layout_width1.match_parent:填充父容器的剩余空间;2.wrap_content:根据子视图宽高自适应的宽高;3.直接指定多大dp必须有的属性,控件的尺寸
layout_height1.match_parent:填充父容器的剩余空间;2.wrap_content:根据子视图宽高自适应的宽高;3.直接指定多大dp必须有的属性,控件的尺寸
background#ff0000这样的背景颜色
gravity1.center;2.horizontal_center;3.vertical_center;子控件相对该父容器的位置
layout_gravity1.center;2.horizontal_center;3.vertical_center;决定该容器相对于它的父容器的位置
weight按照比例分配容器剩余的宽高

如果 layout_gravity的对齐方式与父级的排列方式相同了,那么这个属性就不生效了

2.RelativeLayout

相对布局在摆放子视图位置时,按照指定的参考系来摆放子视图的位置,默认以屏幕左上角(0,0)位置作为参考拜访位置.

这些属性都是应用于RelativeLayout的子元素使用的.

  • 相对于父元素 摆放自己位置常用的属性 | 常用属性 | 可选值 |说明| | --- | --- | --- | | layout_alignParentTop | true/false | 是否让控件相对于父容器顶部对齐 | | layout_alignParentBottom | true/false | 是否让控件相对于父容器底部对齐 | | layout_alignParentLeft | true/false | 是否让控件相对于父容器左边对齐 | | layout_alignParentRight | true/false | 是否让控件相对于父容器右边对齐 | | layout_centerHorizontal | true/false | 相对于父容器水平居中显示 | | layout_centerVertical | true/false | 相对于父容器垂直居中显示 | | centerInParent | true/false | 相对父容器居中显示 |

-相对于兄弟元素摆放自己的位置

常用属性可选值说明
layout_above@+id/指定在那个控件的上侧
layout_below@+id/指定在哪个控件的下侧
layout_toLeftOf@+id/指定在哪个控件的左侧
layout_toRightOf@+id/指定在哪个控件的右侧

-相对于兄弟元素的对齐方式

常用属性可选值说明
layout_alignLeft@+id/该控件在左边沿与指定控件的左边对齐
layout_alignRight@+id/该控件的右边沿与指定控件右边对齐
layout_algnTop@+id/该控件的上边沿与指定控件的上边沿对齐
layout_algnBottom@+id/该控件的下边沿与指定控件的下边沿对齐

3.帧布局FrameLayout

组件的默认位置都是左上角,组件之间可以重叠.像千层饼一样,一层压着一层;可以设置上下左右的对齐,水平垂直,设置方式与线性布局相似;

常用属性可选值说明
layout_gravitycenter/center_vertical/center_horizontal组件相对父容器的位置
layout_marginLeft具体数值左侧外间距
layout_marginTop具体数值上侧外间距
layout_marginBottom具体数值右侧外间距
layout_marginBottom具体数值下侧外间距