ConstraintLayout 核心用法
AndroidStudio新建的工程默認佈局就是ConstrainsLayout,之所以這樣是因爲Google推薦我們這麼做。ConstrainsLayout是RelativeLayout改良後的一個版本,尤其適合在GUI中設計App界面。
1. constraint
一個控件(View)所在的位置由它的4個方向上的約束所確定,至少得有水平和垂直方向各1個約束。
-
如果沒有給加一個view加約束,它運行時的位置將在(0,0)處,並且該控件會有
!
提示
在Design
界面,TextView
在中間
但是運行時,它實際位置在屏幕左上角。 -
每拖入一個控件,都要連4個約束,太麻煩,怎麼辦?用魔法棒
魔法棒智能的添加約束,儘可能的保持原有的位置 -
刪除約束
2. pack
pack Vertically
:可將多個控件/view 緊湊的在垂直方向上聚攏到一起
pack Horizontally
:水平方向上同理
expand Horizontally
:將1個或多個控件在水平方向擴展直至佔滿父佈局
expand Vertically
:垂直方向上同理
3. align(各種對齊方式,可對多個控件使用)
- align
- 還有一種對齊
- 兩控件文字基線對齊(有這種對齊方式,但是我的studio 3.2.1按鈕右鍵沒有showbaseline,3.4有)
4. Guidelines(輔助線)
重點爲guideline何barrier,能使我們的界面設計得更加精準
- Guildline(重點)
- 只是設計階段能看到,運行時看不到
- 加了之後,控件會多了可以連接的地方,可以添加多個
- 移動輔助線時,所有跟他關聯的控件都會同時移動
- 輔助線有個重要的好處是點擊Cycle Guideline(鼠標放到guildline上)修改它的模式
- 水平guideline:
- 距離上邊的絕對距離
- 距離下邊的絕對距離
- 距離上邊的百分比(非常有用,實現屏幕適配)
- 垂直guideline:同理
- 水平guideline:
- Barrier
- 給多個控件添加一條邊界,
- Group
- 可以把多個控件添加到一個group,然後操作group,比如設置group爲invisiable,則在group內多個控件都將不可見
最後,實現如下圖的一個demo,在不同分辨率的屏幕下整體效果都基本一樣。