约束布局ConstraintLayout 是一个ViewGroup,可以在Api9以上的Android系统使用它,它的出现主要是为了解决布局嵌套过多的问题,以灵活的方式定位和调整小部件
为什么要用ConstraintLayout
在开发过程中经常能遇到一些复杂的UI,可能会出现布局嵌套过多的问题,嵌套得越多,设备绘制视图所需的时间和计算功耗也就越多
ConstraintLayout使用起来比RelativeLayout更灵活,性能更出色!
ConstraintLayout可以按照比例约束控件位置和尺寸,能够更好地适配屏幕大小不同的机型。
抄袭--GSDN
约束布局的使用
新版Studio 一般默认有ConstraintLayout的依赖
普通版本依赖
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
接下来
ConstraintLayout的使用
layout_constraintLeft_toLeftOf="@id/t1"
执行当前控件的左边框与指定控件的左边框 对齐
layout_constraintLeft_toRightOf ="@id/t1"
执行当前控件的右边框与指定控件的右边框 对齐
layout_constraintRight_toRightOf="@id/t1"
执行当前控件的右边框与指定控件的右边框 对齐
layout_constraintRight_toLeftOf="@id/t1"
执行当前控件的右边框与指定控件的左边框 对齐
layout_constraintTop_toTopOf="@id/t1"
执行当前控件的上边框与指定控件的上边框 对齐
layout_constraintTop_toBottomOf="@id/t1"
执行当前控件的上边框与指定控件的下边框 对齐
layout_constraintBottom_toBottomOf="@id/t1"
执行当前控件的下边框与指定控件的下边框 对齐
layout_constraintBottom_toTopOf="@id/t1"
执行当前控件的下边框与指定控件的上边框 对齐
parent属性 让当前控制的上下左右与父控件对齐
上边的属性看一眼 就差不多了 下面的属性 需要记一记
文本定位
layout_constraintBaseline_toBaselineOf="@id/t1"
执行当前控件的内容位置与指定控件的内容位置 水平对齐
控件与控件的水平对齐
layout_constraintStart_toStartOf="@id/t1"
执行当前控件的起始位置与指定控件的起始位置 对齐
layout_constraintStart_toEndOf="@id/t1"
执行当前控件的起始位置与指定控件的结尾位置 对齐
layout_constraintEnd_toEndOf="@id/t1"
执行当前控件的结尾位置与指定控件的结尾位置 对齐
layout_constraintEnd_toStartOf="@id/t1"
执行当前控件的结尾位置与指定控件的起始位置 对齐
角度定位
app:layout_constraintCircle="@id/t1"
app:layout_constraintCircleAngle="0"
app:layout_constraintCircleRadius="100dp"
这三个必须配合使用
第一个指定控件的中间位置
第二个是偏移的角度
第三个是偏移的半径
边距
android:layout_marginStart
android:layout_marginEnd
android:layout_marginLeft
android:layout_marginTop
android:layout_marginRight
android:layout_marginBottom
这几个属性 在线性布局与相对布局用的很多了 不多bb
要在 ConstraintLayout约束布局里使用 必须在约束该控件在布局中的显贵位置 否则不生效
goneMargin
goneMargin主要用于约束的控件可见性被设置为gone的时候使用的margin值
大白话:两个控件 左右排列 左边控件隐藏后 设置了goneMarginleft=10dp
这个属性 右边控件会移动到距离左边10dp的位置 算了解释不清 看图
goneMargin偏移
使用前要先约束一下控制的位置
layout_constraintHorizontal_bias="0.5"
水平平移 从0到1 0为当前控件的左边 1为当前控件的右边
layout_constraintVertical_bias="0.5"
垂直平移 从0到1 0为当前控件的上边 1为当前控件的下边
尺寸约束
1 wrap_content 根据内容自动填充
android:minWidth 最小的宽度
android:minHeight 最小的高度
android:maxWidth 最大的宽度
android:maxHeight 最大的高度
设置上这些属性 layout_width和layout_height 就被约束了
对于我这个目前小白来说应该够用了
后边陆续添加
网友评论