Android: 常用布局及控件定位
这篇详细讲一下常用布局:LinearLayout、FrameLayout、RelativeLayout、ConstraintLayout。
1. LinearLayout 线性布局
线性布局是我初学 Android 开发使用最多、自认为最简单的布局,所以先来说说它。
线性布局是根据定义控件的先后顺序来摆放的,有 横向 和 纵向 两种摆放规则。具体定义如下:
1 | android:orientation="vertical" // 纵向摆放控件 |
对齐方式:
1 | android:gravity="center"|"start"|"end"|"top"|"bottom" // 控件子元素相对于自己的对齐方式 |
gravity
其实还有 left
& right
两个值, left 代表绝对的左边,而 start 是根据地域的阅读习惯改变。根据情况选择使用。
注意:嵌套太深影响性能
2. RelativeLayout 相对布局
相对布局默认控件都存放于左上角,根据属性指定控件出现在布局的任何位置,比如在谁的上/下/左/右边。
指定相对位置,值为控件id:
1 | android:layout_toLeftOf 该组件位于引用组件的左方 |
指定对齐方式,值为true/false:
1 | android:layout_alignParentLeft 该组件是否对齐父组件的左端 |
3. Frame Layout——帧布局
没有任何定位方式,默认排列在布局左上角,后面的控件会将前面的覆盖掉。一般结合 fragment
使用。
4. ConstraintLayout —— 约束性布局
根据布局中的其它元素或视图,确定控件在屏幕中的位置,受到三类约束:其它视图、父容器、基准线(guideline)
这里直接开吃郭大神的文章就好,图文并茂:Android新特性介绍,ConstraintLayout完全解析
通用属性
控件大小
1
2android:layout_width
android:layout_height外边距
1
2
3
4android:layout_marginStart
android:layout_marginEnd
android:layout_marginTop
android:layoot_marginBottom内边距
1
2
3
4android:layout_paddingStart
android:layout_paddingEnd
android:layout_paddingTop
android:layout_paddingBottom
以上属性全部使用常见的如:32dp等具体尺寸赋值。