美文网首页
Constraintlayout相关使用

Constraintlayout相关使用

作者: fengyongge | 来源:发表于2020-07-14 18:24 被阅读0次

    官网介绍

    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
     <androidx.constraintlayout.widget.Guideline
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:orientation="vertical"
      app:layout_constraintGuide_begin="3dp"
      app:layout_constraintGuide_end="3dp"
      app:layout_constraintGuide_percent="0.7"/>
    
    

    Group

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

    <androidx.constraintlayout.widget.Group
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:constraint_referenced_ids="button"/>
    
    

    Layer

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

    Barrier

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

    Placeholder

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

    Flow

    wrapMode

    • chain
    • aligned
    • none(默认)

    相关文章

      网友评论

          本文标题:Constraintlayout相关使用

          本文链接:https://www.haomeiwen.com/subject/njifhktx.html