总结

  1. 约束布局:ConstraintLayout
  2. 线性布局:LinearLayout
  3. 相对布局:RelativeLayout
  4. 帧布局:FrameLayout
  5. 网格布局:GridLayout

ConstraintLayout

最推荐的一个,各种组件之间的约束关系来锁定位置。

RelativeLayout Plus

可视化拖拽使用良好。

LinearLayout

人如其名,只能线性摆放控件。

呈线性横向或纵向,依次绘制每个被添加进来的子组件。

可读性强,但是性能差。

嵌套LinearLayout加深视图层级,摆放子组件会消耗更多计算。

RelativeLayout

不虚要嵌套,但是每个子View可以相对其他VIew或者父控件去摆放。

OtherLayout

FrameLayout:默认堆在左上角

Tablelayout:表格

AbsoluteLayout:直接xy定位置

布局优化

  1. include加载重复布局
  2. merge标签减少布局嵌套
  3. 使用ViewStub动态控制布局显示