【5年Android從零覆盤系列之五】關於頁面佈局控制元件開發總結

Cupster發表於2020-12-31

1.Android開發常用佈局

  1. LinearLayout 【高頻】
  2. RelativeLayout 【高頻】
  3. FrameLayout 【較少】
  4. FlexboxLayout 【較少】
  5. ConstraintLayout 【中頻】
  6. AbsoluteLayout 【極少】
  7. TableLayout 【極少】
  8. GridLayout 【較少】
  9. NestedScrollView 【中頻】
  10. HorizontalScrollView【較少】
  11. PercentRelativeLayout 【較少】使用全解->
  12. PercentFrameLayout【較少】使用全解->
  13. PercentLinearlayout 【較少】鴻洋大神github ->

2.開發注意細節

2.1 LinearLayout

android:layout_width
android:layout_height
是必須屬性,子View在使用layout_weight時,子View最好將對應方向的android:layout_width或android:layout_height 值設定為0dp

android:orientation佈局方向是必須屬性,預設水平方向,建議單子View時也顯式設定方向

2.2 RelativeLayout

~~layout_alignParentLeft~~ : 與父佈局左對齊,建議使用layout_alignParentStart
layout_alignParentTop : 與父佈局上對齊
~~layout_alignParentRight ~~: 與父佈局右對齊
layout_alignParentBottom : 與父佈局下對齊
layout_alignParentStart : 為了適配一些從右到左閱讀習慣的地區。如適配阿拉伯語,start代表右邊,中文是左邊。
layout_alignParentEnd : 同理取反layout_alignParentStart

同理其他
marginLeft/marginRight 建議改用 marginStart/ marginEnd

2.3 ScrollView

建議直接使用NestedScrollView ,用法相同,NestedScrollView方便MD風格改動

android:layout_width只能是match_parent或具體數值,不能是wrap_content;

2.3 HorizontalScrollView

android:layout_height只能是match_parent或具體數值,不能是wrap_content;

2.4 ConstraintLayout

* 不建議在列表子項使用該佈局:
ConstraintLayout不適合在列表類的item佈局檔案中作為根標籤使用,
列表類滾動時,會出現繪製錯誤。

也不建議在佈局中常用,
因為各種id強關聯,牽一髮動全身,
遇上朝令夕改的產品經理,會改出血絲眼

相關文章