1.ConstraintLayout 约束布局
app:layout_constraintTop_toBottomOf :"@id/控件id"
使此控件在 控件id对应控件 之下
权重:app:layout_constraintHorizontal_weight = "2"
2.RelativeLayout 相对布局
在id控件之上
android:layout_above ="id"
在btn1之上,并在其之左
android:layout_above="@id/btn1"
android:layout_toLeftOf="@id/btn1"
在btn2之上,且在btn2和btn3之间
android:layout_above="@id/btn2"
android:layout_toLeftOf="@id/btn3"
android:layout_toRightOf="@id/btn2"
3.TableLayout 表格布局
计算器键盘
4.FrameLayout 框架布局
FrameLayout 是最简单的布局了。所有放在布局里的控件,都按照层次堆叠在屏幕的左上角。后加进来的控件覆盖前面的控件。 在 FrameLayout 布局里,定义任何空间的位置相关的属性都毫无意义
- android:layout_width="fill_parent"属性造成的android:layout_gravity失效 将match_parent改为 wrap_parent
- framelayout所有布局层次都按照左上角堆叠,后加进布局覆盖前面的控件
- 仅可使用 gravity,layout_gravity相关 控制控件位置空间
5.AbsoluteLayout 绝对布局
布局优化
- 使用include 标签加载重复布局
- 使用merge标签减少布局嵌套
- 使用viewstub动态控制布局显示