1.Android開發常用佈局
- LinearLayout 【高頻】
- RelativeLayout 【高頻】
- FrameLayout 【較少】
- FlexboxLayout 【較少】
- ConstraintLayout 【中頻】
AbsoluteLayout 【極少】- TableLayout 【極少】
- GridLayout 【較少】
- NestedScrollView 【中頻】
- HorizontalScrollView【較少】
- PercentRelativeLayout 【較少】使用全解->
- PercentFrameLayout【較少】使用全解->
- 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強關聯,牽一髮動全身,
遇上朝令夕改的產品經理,會改出血絲眼