ConstraintLayout 約束佈局的幾個新特性筆記整理

KosmoSakura發表於2019-02-15

1.約束比(偏移比率)

使用前提:控制元件的四個方向都被約束

屬性/栗子 引數 說明
app:layout_constraintHorizontal_bias="0.3" float 水平約束比
app:layout_constraintVertical_bias="0.3" float 豎直約束比

2.寬高比

使用前提:控制元件寬高指定其一0dp表示待約束(比如:w=100dp,h=0dp)

  • 1.3:2預設(省略帶約束邊,這裡是H,表分母)表示寬:高= 3:2
  • 2.H, 3:2W, 3:2未被約束的邊表示倒置

在這裡插入圖片描述

屬性/栗子 引數
app:layout_constraintDimensionRatio="3:2" 寬度:高度或者float

3.1.權重

使用前提:相關控制元件必須水平或者豎直方向上呈“連結串列關係”
app:layout_constraintHorizontal_weight

屬性/栗子 說明
app:layout_constraintHorizontal_weight="2" 同LinearLayout效果
app:layout_constraintVertical_weight="2" 同LinearLayout效果

3.2.連鎖風格

使用前提:輔助3.1的權重
layout_constraintHorizontal_chainStyle

  • 1.spread:(預設可省略),可用空間平分
  • 2.packed:元素包裹在一起。子控制元件的水平或垂直方向的偏置bias屬性會影響包裹中元素的位置。
  • 3.spread_inside:元素展開,但鏈的端點不會展開

在這裡插入圖片描述

屬性/栗子 說明
app:layout_constraintHorizontal_chainStyle="spread" spread、packed、spread_inside
app:layout_constraintVertical_chainStyle="spread" spread、packed、spread_inside

4.輔助線

Guideline

屬性/栗子 引數 說明
android:orientation="vertical" horizontal、vertical 參考線方向
app:layout_constraintGuide_begin="100dp" dimension 根據orientation距離左/上距離
app:layout_constraintGuide_end="100dp" dimension 根據orientation距離右
app:layout_constraintGuide_percent="0.6" float 相對於父元素的百分比

相關文章