约束布局--ConstraintLayout

1.介绍

约束布局ConstraintLayout 是一个ViewGroup,可以在Api9以上的Android系统使用它,它的出现主要是为了解决布局嵌套过多的问题,以灵活的方式定位和调整小部件。从 Android Studio 2.3 起,官方的模板默认使用 ConstraintLayout
ConstraintLayout 官方文档

2.使用ConstraintLayout

2.1 添加依赖

在app/build.gradle文件dependencies中添加ConstraintLayout的依赖

implementation 'com.android.support.constraint:constraint-layout:1.1.3'

 2.2 相对定位(类似RelativeLayout的)

layout_constraintLeft_toLeftOf
layout_constraintLeft_toRightOf---在标定id的右边
layout_constraintRight_toLeftOf
layout_constraintRight_toRightOf
layout_constraintTop_toTopOf
layout_constraintTop_toBottomOf---在标定id的下边
layout_constraintBottom_toTopOf
layout_constraintBottom_toBottomOf
layout_constraintBaseline_toBaselineOf---在标定id的文本(内容)对齐
layout_constraintStart_toEndOf
layout_constraintStart_toStartOf
layout_constraintEnd_toStartOf
layout_constraintEnd_toEndOf

2.3 角度定位

角度定位指的是可以用一个角度和一个距离来约束两个空间的中心:

app:layout_constraintCircle="@+id/"----标定id为中心
app:layout_constraintCircleAngle="120"----在中心的角度位置,以上为起点
app:layout_constraintCircleRadius="150dp"----距离

2.4 边距

2.4.1 常用margin(控件必须在布局里至少约束一个相对位置;margin只能大于等于0)

android:layout_marginStart

android:layout_marginEnd

android:layout_marginLeft---margin左边距离

android:layout_marginTop---margin上边距离

android:layout_marginRight---margin右边距离

android:layout_marginBottom---margin下边距离

2.4.2 goneMargin(用于约束的控件可见性被设置为gone的时候使用的margin值,不是本身为gone)

layout_goneMarginStart

layout_goneMarginEnd

layout_goneMarginLeft

layout_goneMarginTop

layout_goneMarginRight

layout_goneMarginBottom

2.4.3 通过设置2.2的属性标定为parent时的组合情况可以实现全局居中/水平居中/垂直居中等效果。

2.4.4 偏移效果(范围为 0-1 的值,为参考控件的左边(水平偏移),顶边(垂直偏移)为起点的偏移距离,距离值为参考控件的百分比)

layout_constraintHorizontal_bias水平偏移

layout_constraintVertical_bias垂直偏移

2.5 尺寸约束

android:minWidth最小的宽度

android:minHeight最小的高度

android:maxWidth最大的宽度

android:maxHeight最大的高度

android:layout_width

android:layout_height

layout_constraintDimensionRatio---设置宽高比,宽或高至少有一个尺寸被设置为0dp

2.6 权重(和LinearLayout类似)

layout_constraintHorizontal_weight

layout_constraintVertical_weight

2.7 屏障Barrier(就是建立一条基准线,相当于一个控件)

app:barrierDirection为屏障所在的位置,可设置的值有:bottom、end、left、right、start、top

app:constraint_referenced_ids为屏障引用的控件,可设置多个(用“,”隔开)

2.8 Group(可以把多个控件归为一组,方便隐藏或显示一组控件)

app:constraint_referenced_ids为引用的控件,可设置多个(用“,”隔开)

2.9 占位符Placeholder(通过app:content指定的id控件,将其布局在Placeholder的布局属性位置而不是控件本身的布局属性位置)

2.10 辅助线Guideline(不会显示出来)

android:orientation垂直vertical,水平horizontal

layout_constraintGuide_begin开始位置

layout_constraintGuide_end结束位置

layout_constraintGuide_percent距离顶部的百分比(orientation=horizontal时则为距离左边)

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值