ConstraintLayout属性的简单介绍
1.定位 layout_constraintXXX_toXXXOf
本控件的 left/right...与目标视图的 left/right 对齐
这和RelativeLayout很像,用过RelativeLayout的很容易就理解了吧
layout_constraintLeft_toLeftOf
layout_constraintLeft_toRightOf
layout_constraintRight_toLeftOf
layout_constraintRight_toRightOf
layout_constraintTop_toTopOf
layout_constraintTop_toBottomOf
layout_constraintBottom_toTopOf
layout_constraintBottom_toBottomOf
layout_constraintBaseline_toBaselineOf
layout_constraintStart_toEndOf
layout_constraintStart_toStartOf
layout_constraintEnd_toStartOf
layout_constraintEnd_toEndOf
2.简单的定位
放置一个按钮上下左右都和父容器对齐
注意:控件的和目标视图的对齐部分像不像一个弹簧,想象下控件所对齐的视图有一根弹簧拉这控件,这个视图想象成父容器的上下左右四根弹簧拉着控件最终把控件拉到了中间。想象成目标有弹簧拖着控件接下来的属性就好理解了。
3.按比例定位
下面2个设置控件在水平和垂直方向的偏移比例,用弹簧来理解就是水平或者垂直方向上的2根弹簧力大小的比值取值(0-1)那边力越大就越向哪里偏。
注意:使用layout_constraintHorizontal_bias 时候,左右方向设置对齐layout_constraintStart/left_toXXXof和layout_constraintEnd/Right_toXXXof比例偏移才会生效,layout_constraintVertical_bias必须设置上下的对齐才会生效,
很好理解要2个方向上都有“弹簧拉”这样设置弹簧力大小的比值才有意义
app:layout_constraintHorizontal_bias="0.3"
app:layout_constraintVertical_bias="0.3"
4.控件大小
想象下假如控件本身是有“弹性”的,“弹簧”一拉就把控件给拉长了
app:layout_constraintHeight_percent="0.3"
app:layout_constraintWidth_percent="0.5"
这2个属性就能按比例设置控件的大小取值(0-1),取值越大控件“弹性”越好越容易拉大。
当然该属性生效前提控件有“弹性”设置宽或者高为0dp
同时要有”弹簧“拉才能把控件”拉开“和按比例定位控件同样的道理。
设置控件的宽和高的比值,当然控件宽或者高设置为”0dp“否则控件宽高都被写死,没有”弹性“设置改属性就无效了
app:layout_constraintDimensionRatio="5:3"
参考:https://blog.****.net/crazymo_/article/details/73036350
https://www.jianshu.com/p/a74557359882