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動態控制布局顯示