xml 代碼不要記,看一遍就夠了java
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
複製代碼
app:layout_constraintStart_toStartOf="@id/view"
app:layout_constraintEnd_toEndOf="@id/view"
複製代碼
app:layout_constraintTop_toTopOf="@id/view"
app:layout_constraintBottom_toBottomOf="@id/view"
複製代碼
控件垂直居中於 view 的 「下邊」android
app:layout_constraintTop_toBottomOf="@id/view"
app:layout_constraintBottom_toBottomOf="@id/view"
複製代碼
水平填充父佈局(match_constraint)git
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_width="0dp"
複製代碼
備註: 在早期版本中 match_parent 沒有效果,必須來使用 match_constraint 來完成github
爲水平⽅方向的控件設置權重,⼤小爲 2:1:1app
<!-- (view-1) -->
android:layout_width="0dp"
app:layout_constraintHorizontal_weight="2"
<!-- (view-2) -->
android:layout_width="0dp"
app:layout_constraintHorizontal_weight="1"
<!-- (view-3) -->
android:layout_width="0dp"
app:layout_constraintHorizontal_weight="1"
複製代碼
app:layout_constraintBaseline_toBaselineOf
複製代碼
經過「圓心」「角度」「半徑」設置圓形定位ide
app:layout_constraintCircle="@id/view"
app:layout_constraintCircleAngle="90"
app:layout_constraintCircleRadius="180dp"
複製代碼
經過引用的方式來避免佈局嵌套 wrapMode佈局
注意這個控件是能夠被測量的,因此對應方向的值可能須要被肯定(便可能被約束同一個方向的單個約束)ui
使用 ConstraintSet 對象來動態修改佈局spa
防止控件佈局中無 id 控件,能夠設置 isForceId = falsecode
經過 ConstraintSet#clone 來 從xml 佈局中獲取約束
經過 setContentId 來指定控件放到佔位符的位置
經過設置一組控件的某個方向的屏障,來避免佈局嵌套
經過 constraint_referenced_ids 使用引用的方式避免佈局嵌套 能夠爲一組控件統一設置 setVisibility
和Group相似,一樣經過引用方式避免佈局嵌套,能夠爲一組控件統一設置旋轉/縮放/位移
限制控件大小不會超過約束範圍
app:layout_constrainedWidth="true"
app:layout_constrainedHeight="true"
複製代碼
控制控件在垂直⽅方向的 30%的位置
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintVertical_bias="0.3"
複製代碼
除了百分定位,還有用於配合有時在 「約束限制」 的條件下不須要居中效果的狀況
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constrainedHeight="true"
app:layout_constraintVertical_bias="0.0"
複製代碼
在約束鏈上的第⼀一個控件上加上 chainStyle ,⽤用來改變⼀一組控件的佈局⽅方式
垂直方向的 packed
app:layout_constraintVertical_chainStyle="packed"
複製代碼
x:y 默認表示的都是 width:height
有值的邊,ratio 值 (默認寬高比),被約束的邊(也有多是有值的邊)
寬是 0dp,⾼高是 100dp,ratio 是 2:1,默認狀況下是寬是 200dp,可是咱們能夠指定被約束的邊是 height,那麼寬度就是 50 dp
⾼高是 0dp,寬是 100 dp,ratio 是 2:1,默認狀況下是⾼高是 50 dp,可是咱們指定被約束的邊是 width,那麼⾼高度爲 200 dp
只有一個方向 match_constraint 不要去用,若是是兩個⽅方向都是match_constraint 那麼可能會⽤用 到。
寬度是父容器器的 30%
android:layout_width="0dp"
app:layout_constraintWidth_percent="0.3"
複製代碼