【UI篇2】ConstraintLayout 屬性詳解

溫故而知新茶行,可以為師矣 采郎。

前言
關于ConstraintLayout,官方給出了使用指南文檔使用ConstraintLayout 構建自適應界面倍靡,一直太懶堕澄,不愿動筆膜蛔,下面記錄一下閱讀指南的心得體會瀑志。

一涩搓、創(chuàng)建布局
  1. 約束:要在 ConstraintLayout 中定義某個視圖的位置污秆,您必須為該視圖添加至少一個水平約束條件和一個垂直約束條件。
  2. 轉換布局:在 Component Tree 窗口中昧甘,右鍵點擊該布局良拼,然后點擊 Convert layout to ConstraintLayout。
  3. 創(chuàng)建布局:layout>New>Layout Resource File
  4. Resource Manager:選擇Layout標簽創(chuàng)建布局
二充边、Relative Positioning 相對定位
屬性 含義
layout_constraintStart_toStartOf 約束左邊與誰的左邊對齊
layout_constraintStart_toEndOf 約束左邊在誰的右邊
layout_constraintEnd_toStartOf 約束右邊在誰的左邊
layout_constraintEnd_toEndOf 約束右邊與誰對齊
layout_constraintTop_toTopOf 約束頂部與誰對齊
layout_constraintTop_toBottomOf 約束頂部在誰的底部
layout_constraintBottom_toTopOf 約束底部在誰的頂部
layout_constraintBottom_toBottomOf 約束底部與誰對齊
layout_constraintBaseline_toBaselineOf 約束基線與誰對齊
  • 居中:如果左右都約束庸推,則相對于橫向剩余空間居中顯示
  • 基線對齊:基線對齊取下基線對齊,如下圖1所示
    layout_constraintBaseline_toBaselineOf 受文字的gravity屬性影響
    圖1
三浇冰、Margins 邊距

如果設置了邊距予弧,將邊距強制為目標端與源端之間的空間

邊距 設置
android:layout_marginStart 左邊距
android:layout_marginTop 上邊距
四、Centering positioning and bias 居中偏移

說明:文章中的居中都是廣義的居中湖饱,即在剩余空間中居中
即在剩余空間中按比例顯示

偏移 設置
layout_constraintHorizontal_bias 水平方向居中時左右邊距的比例:取值范圍是0-1
layout_constraintVertical_bias 垂直方向居中時左右邊距的比例:取值范圍是0-1
五、Circle positioning 角度定位
角度定位 設置
app:layout_constraintCircle 約束以誰為圓點
app:layout_constraintCircleRadius 約束角度的距離
app:layout_constraintCircleAngle 約束的角度
六杀捻、目標view被隱藏時井厌,當前view的邊距
邊距 設置
layout_goneMarginStart 水平方向參照view設置為gone時左邊距,取值dimens
layout_goneMarginEnd 水平方向參照view設置為gone時右邊距
layout_goneMarginTop 垂直方向參照view設置為gone時上邊距
layout_goneMaginBottom 垂直方向參照view設置為gone時下邊距
七致讥、尺寸
尺寸 設置
app:layout_constraintWidth_min="200dp" 約束最小寬度
layout_constraintVertical_weight 縱向高度所占的比重
layout_constraintHorizontal_weight 橫向寬度所占的比重
layout_constraintDimensionRatio 寬高的比例仅仆,設置寬/高百分比時,必須將對應的寬 /高設置為 "0dp"垢袱,取值范圍為0-1
八墓拜、 鏈

鏈是一組視圖,這些視圖通過雙向位置約束條件相互鏈接到一起请契。鏈中的視圖可以垂直或水平分布咳榜。

鏈可以采用以下幾種樣式之一:

  1. Spread:視圖是均勻分布的(在考慮外邊距之后)。這是默認值爽锥。
  2. Spread inside:第一個和最后一個視圖固定在鏈兩端的約束邊界上涌韩,其余視圖均勻分布。
  3. Weighted:當鏈設置為 spreadspread inside 時氯夷,您可以通過將一個或多個視圖設置為“match constraints”(0dp) 來填充剩余空間臣樱。默認情況下,設置為“match constraints”的每個視圖之間的空間均勻分布腮考,但您可以使用 layout_constraintHorizontal_weightlayout_constraintVertical_weight 屬性為每個視圖分配重要性權重雇毫。如果您熟悉線性布局中的 layout_weight 的話,就會知道該樣式與它的原理是相同的踩蔚。因此棚放,權重值最高的視圖獲得的空間最大;相同權重的視圖獲得同樣大小的空間寂纪。
  4. Packed:視圖打包在一起(在考慮外邊距之后)席吴。 然后赌结,您可以通過更改鏈的頭視圖偏差調整整條鏈的偏差(左/右或上/下)。

每種鏈樣式的示例


  • 鏈對當前方向上進行了約束孝冒,但對另一個方向無效柬姚,兩個方向約束獨立
  • 鏈提供了分組功能,其包含了多個組件庄涡,這些組件共享方向上的空間
設置
layout_constraintHorizontal_chainStyle 取值為string
layout_constraintVertical_chainStyle 垂直鏈約束的模式量承,取值為Spread、Spread inside穴店、Weighted撕捍、Packed
九、繪制

ConstraintLayout是按照從上到下一層一層的順序繪制的

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末泣洞,一起剝皮案震驚了整個濱河市忧风,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌球凰,老刑警劉巖狮腿,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異呕诉,居然都是意外死亡缘厢,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門甩挫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贴硫,“玉大人,你說我怎么就攤上這事伊者∮⒃猓” “怎么了?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵亦渗,是天一觀的道長贪绘。 經常有香客問我,道長央碟,這世上最難降的妖魔是什么税灌? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮亿虽,結果婚禮上菱涤,老公的妹妹穿的比我還像新娘。我一直安慰自己洛勉,他們只是感情好粘秆,可當我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著收毫,像睡著了一般攻走。 火紅的嫁衣襯著肌膚如雪殷勘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天昔搂,我揣著相機與錄音玲销,去河邊找鬼。 笑死摘符,一個胖子當著我的面吹牛贤斜,可吹牛的內容都是我干的。 我是一名探鬼主播逛裤,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼瘩绒,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了带族?” 一聲冷哼從身側響起锁荔,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蝙砌,沒想到半個月后堕战,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡拍霜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了薪介。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片祠饺。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖汁政,靈堂內的尸體忽然破棺而出道偷,到底是詐尸還是另有隱情,我是刑警寧澤记劈,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布勺鸦,位于F島的核電站,受9級特大地震影響目木,放射性物質發(fā)生泄漏换途。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一刽射、第九天 我趴在偏房一處隱蔽的房頂上張望军拟。 院中可真熱鬧,春花似錦誓禁、人聲如沸懈息。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽辫继。三九已至怒见,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間姑宽,已是汗流浹背遣耍。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留低千,地道東北人配阵。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像示血,于是被迫代替她去往敵國和親棋傍。 傳聞我的和親對象是個殘疾皇子僵朗,可洞房花燭夜當晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內容