ConstraintLayout

约束类型:

- Relative positioning(相对定位)

ConstraintLayout_第1张图片
B在A的右边

可在横/竖轴方向添加相对约束

  • 横轴: left, right, start and end sides
  • 竖轴: top, bottom sides and text baseline
    ConstraintLayout_第2张图片
    相对位置约束示
    layout_constraintX_toYOf
    X和Y必须在同一轴向

- Margins

  1. 通用间距
  • android:layout_marginStart
  • android:layout_marginXXX
  1. Gone间距,指定约束目标可见性为Gone时的间距
  • layout_goneMarginStart
  • layout_goneMarginXXX

- Centering positioning(居中定位)

1.约束居中


ConstraintLayout_第3张图片
设置具体大小或者wrap_content

ConstraintLayout_第4张图片
设置0dp或者match_constraint

2.Bias(倾向居中)

  • layout_constraintHorizontal_bias
  • layout_constraintVertical_bias
ConstraintLayout_第5张图片
Bias

             

- Dimension constraints(尺寸约束)

1.android:layout_width和android:layout_height有三种设置方式:
  • Using a specific dimension (either a literal value such as 123dp or a Dimension reference)
  • Using WRAP_CONTENT, which will ask the widget to compute its own size
  • Using 0dp, which is the equivalent of "MATCH_CONSTRAINT"

android:minWidth设置WRAP_CONTENT模式下最大/最小尺寸
layout_constraintWidth_min设置MATCH_CONSTRAINT模式下最大/最小尺寸

2.Percent dimension

使用百分比大小需要以下步骤:

  • 设置大小属性为MATCH_CONSTRAINT (0dp)
  • 指定percent方式app:layout_constraintWidth_default="percent" or app:layout_constraintHeight_default="percent"
3.Ratio(长宽比例)

app:layout_constraintDimensionRatio="width:height"

显示指定已知的一边"H,16:9"

- Chains(约束链)

约束链提供单轴向内的分组行为


约束链以及链头

在链头(最左或最上节点)设置layout_constraintHorizontal_chainStyle控制链组样式

  • CHAIN_SPREAD(均分) -- the elements will be spread out (default style)
  • Weighted chain -- in CHAIN_SPREAD mode, if some widgets are set to MATCH_CONSTRAINT, they will split the available space
  • CHAIN_SPREAD_INSIDE(中间均分) -- similar, but the endpoints of the chain will not be spread out
  • CHAIN_PACKED -- the elements of the chain will be packed together. The horizontal or vertical bias attribute of the child will then affect the positioning of the packed elements
ConstraintLayout_第7张图片
约束链

- Virtual Helpers objects

用来辅助定位,在显示时不可见

- Guideline辅助线
  • 指定到上/左的距离(layout_constraintGuide_begin)
  • 指定到下/右的距离(layout_constraintGuide_end)
  • 指定到上/左的距离百分比(layout_constraintGuide_percent)

辅助线的layout_width、layout_height无意义,layout_constraintGuide_begin和layout_constraintGuide_end同时存在以后者为准

ConstraintLayout_第8张图片
Guideline


    
- Barrier(栅栏)
Barrier

  
  
  
    app:constraint_referenced_ids=”text1,text2" />
  

- Group
 

Group的可见性会被应用到app:constraint_referenced_ids属性链接的所有元素

- Placeholder(占位符)

Placeholder顾名思义,就是用来一个占位的东西,它可以把自己的内容设置为ConstraintLayout内的其它view。因此它用来写布局的模版,也可以用来动态修改UI的内容

其他

  • ConstraintSet动画
  • ConstraintSet动画
  • ConstraintLayout 完全解析 快来优化你的布局吧

你可能感兴趣的:(ConstraintLayout)