Constraintlayout相关使用

文章目录

    • 官网介绍
    • 布局
      • 居中于父容器
      • 居中于控件中心
      • 防止超出约束
      • 偏移
      • 边距
      • 角度定位
      • 约束链
      • 宽高比
      • 百分比
    • 辅助控件
      • Guideline
      • Group
      • Layer
      • Barrier
      • Placeholder
      • Flow

官网介绍

Constraintlayout

Android常见布局

  • LinearLayout
  • RelativeLayout
  • FrameLayout
  • TableLayout
  • GridLayout
  • AbsoluteLayout

使用约束布局优点,避免布局嵌套,在一定程度上取代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"

  • packed(打包)
  • spread (扩散)
  • spread_inside(内部扩散)

宽高比

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"

辅助控件

Guideline

  • 设置辅助线的⽅向 android:orientation=“vertical”
  • 距离左侧或上侧的距离 layout_constraintGuide_begin
  • 距离右侧或下侧的距离 layout_constraintGuide_end
    百分⽐ layout_constraintGuide_percent
 

Group

为一组控件统一设置显示隐藏



Layer

为一组控件统一设置旋转/缩放/位移

Barrier

设置⼀组控件的某个⽅向的屏障,来避免布局嵌套

Placeholder

通过 setContentId来将指定控件放到占位符的位置。

Flow

wrapMode

  • chain
  • aligned
  • none(默认)

你可能感兴趣的:(Android开发的那些事,约束布局,Constraint,Layout,android,ui优化)