Constraintlayout
Android常见布局
使用约束布局优点,避免布局嵌套,在一定程度上取代LinearLayout、RelativeLayout。
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/button"
app:layout_constraintEnd_toEndOf="@id/button"
app:layout_constraintTop_toTopOf="@+id/button"
app:layout_constraintBottom_toBottomOf="@id/button"
app:layout_constraintTop_toBottomOf="@+id/button"
app:layout_constraintBottom_toBottomOf="@id/button"
防止水平和垂直方向约束失效
app:layout_constrainedWidth="true"
app:layout_constrainedHeight="true"
水平方向或者垂直方向上偏移
app:layout_constraintVertical_bias="0.8"
app:layout_constraintHorizontal_bias="0.5"
除了边距常见的属性,还有一些特殊的边距属性
app:layout_goneMarginStart="5dp"
app:layout_goneMarginEnd="5dp"
app:layout_goneMarginTop="5dp"
app:layout_goneMarginBottom="5dp"
例如控件B在控件A的右侧,如果A隐藏之后,B会占据A的位置,但是设置以上属性会占位一定的间距
通过「圆⼼」「⻆度」「半径」设置圆形定位
app:layout_constraintCircle="@id/view"
app:layout_constraintCircleAngle="90"
app:layout_constraintCircleRadius="180dp"
app:layout_constraintVertical_chainStyle="packed"
Constraintlayout中的控件不支持MATCH_PARENT,只有WRAP_CONTENT,0dp(MATCH_CONSTRAINT);
app:layout_constraintDimensionRatio可以定义一个控件相对于另一个控件的尺寸比例,默认是宽高比,前提width或者height至少有一个为0dp(match_constraint);如果width和height都为0需要设置
app:layout_constraintDimensionRatio="16:9"//默认宽高比
app:layout_constraintDimensionRatio="H,16:9"
app:layout_constraintDimensionRatio="W,16:9"
-百分比是父容器的百分比
android:layout_width="0dp"
app:layout_constraintWidth_percent="0.3"
为一组控件统一设置显示隐藏
为一组控件统一设置旋转/缩放/位移
设置⼀组控件的某个⽅向的屏障,来避免布局嵌套
通过 setContentId来将指定控件放到占位符的位置。
wrapMode