ConstraintLayout已經出來有八百多年了,但是因為平時已經習慣了在XML里手寫布局,基本上已經到了不看預覽界面就可以完成各種布局的程度,所以一直都沒有學這東西(才不是因為懶什么的)。但是畢竟是好玩意,拖拖拽拽就能完成酷炫的布局,誰來想去擼枯燥的代碼呢,來來來,玩一玩。
Ps:文章專為自己食用,有那位道友不小心點進來學習ConstraintLayout可以右上角紅叉了。
說明
Google在2016的I/O上發布的一個功能,當時看視頻覺得是真jier皮的沙發,可視化操作啊,可視化啊,果斷更新studio,體驗了一把。然而....拖幾個簡單的布局還是可以的,復雜一點的就懵逼了,這是啥,這咋整,夭壽啦,控件不聽我控制啦。整這么多沒用的其實就想說ConstraintLayout繼承自ViewGroup,向下兼容到API 9,也就是.....可以兼容到上古的2.3版本,所以無需考慮兼容問題。開整。
基礎,都說是基礎了,絕對是簡單的不行了,自己玩一玩就OK了。
- 每個控件的四周會有四個點,可以給它自己添加約束,通過拖動四個小圓點來確定控件的位置。
- 當一個控件確定好位置后,其他控件可以以這個控件為目標,通過拉取小圓點來確定自己的位置。
-確定位置可以說是約束,刪除約束的方式有三種:1.鼠標放在小圓點上,小圓點變紅后點擊可以刪除當前約束線。2.每個控件下面都會有個剪刀狀的圖標,點擊圖標可以刪除該控件所有約束。3.studio操作界面有個紅色的剪刀,點擊可以刪除該布局的所有約束。
Inspector
Inspector也就是操作界面右邊那個酷炫的操作臺,一些基礎屬性的設置不談,就看那個酷炫的XXXX,不知道叫啥。
- 首先最外層有個進度條,從0-100,也就是約束后可控的距離百分比,可設置百分比距離。
- 然后是四方框里面的四個按鈕,它一共有三種形態:
1.>>>這個形態就是wrap content
2.|--|這個形態是給寬或者高一個固定值
3.究極體。。。畫不出,反正就是else了,類似與match parent,但是它表示的
是充滿約束大小。
Guidelines 類似與輔助線的功能
- 作用就是在需要的時候當一個指路的明燈。
- 兩種形態,一種是dp,一種是%。
自動約束A,也就是操作界面上的小磁鐵
- 打開以后可以自己根據控件的擺放位置進行自動約束,當然很有可能是這并不是你想要的結果。。。。
自動約束B,操作界面上兩個閃閃發光的星星
- 當你把所有控件擺好位置以后他會根據控件的擺放位置給布局中的所有控件添加約束,然后可以自己再進行調整。
寫到這里,我的心里只有一個想法,看我表情
有jier用
emmmmmm....一定是我學習的姿勢不對,今天說好早點睡,先寫到這里,明日繼續。
Over,于殺戮之中盛放 亦如黎明中的花朵
汪汪汪