Flow
<androidx.constraintlayout.helper.widget.Flow
android:id="@+id/flow"
//宽度要指定,否则会顶出屏幕外面
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
//引用的id(内部的view的id)
app:constraint_referenced_ids="tv_type,tv_online_state,tv_switch_state"
//chain或者aligned,chain:链形式,依次挨着排,aligned会两端对齐
app:flow_wrapMode="chain"
//首行的对齐方式,packed:靠最左侧挨着排,水平间隔:horizontalGap生效,
// spread:分散对齐,两端不贴边。spread_inside:分散对齐,两头贴边
app:flow_firstHorizontalStyle="packed"
//最后一行的对齐方式,其他属性参考firstHorizontalStyle
app:flow_lastHorizontalStyle="packed"
// 全局水平bias,为0时,每行都贴左边,可解决中间行单独占一行时,不贴最左侧的问题
app:flow_horizontalBias="0"
// 第一行水平bias,为0时,贴最左边
app:flow_firstHorizontalBias="0"
// 最后一行水平bias,为0时,贴最左边
app:flow_lastHorizontalBias="0"
// 控件水平方向上的间隔
app:flow_horizontalGap="10dp"
// 行间隔
app:flow_verticalGap="8dp"
app:layout_constraintEnd_toStartOf="@id/ibt_go"
app:layout_constraintStart_toEndOf="@id/guideline"
app:layout_constraintTop_toTopOf="@id/tv_org_name" />
注意事项
如果Flow自身的高度不确定 则需要 设置如下代码 如果不设置则 不会自动换行处理
如果 需要约束的View 不写约束条件则最好也添加下边代码
android:layout_height="0dp"
app:layout_constraintHeight_default="wrap"