1.关于约束布局居中如何实现
(1)
app:layout_constraintStart_toStartOf=“parent”
app:layout_constraintEnd_toEndOf=“parent”
(2)
app:layout_constraintLeft_toLeftOf=“parent”
app:layout_constraintRight_toRightOf=“parent”
一般通过Start和End(left和right)指定同一个控件就可以实现居中,相信聪明的你举一反三也知道通过设置top和bottom也可以实现居中了吧。
下面说一下这2种方式虽然实现的效果相同,但也有区别,往下面看
首先我们读一段文字,都是从左到右,于是对于我们来说start和left是一个概念。但是还有些文化,像阿拉伯等是从右到左的,这两者就截然相反了。所以为了你的程序更广泛适用,还是用start和end吧。
2.goneMargin属性:当约束控件不可见时,可以设置与父布局的距离
这里是居中textview的顶部在text1的底部,当text1布局显示的时候,居中textview相距text1的顶部是20dp,这时候goneMarginTop属性并不会生效(顾名思义gon eMargin),效果如下图所示:
但有些情况text1会被设置为gone(不占位置且不可见),那此时居中textview就会相聚它的父布局20dp,如果想要不改变位置,就使用
app:layout_goneMarginTop="自己计算,看需求"属性即可
3.GROUP
若你想要某一些控件同步控制其visibility(可见性),用Group,只需要设置下面一句app:constraint_referenced_ids=“text1,text2”/>,在设置Group的visibility就可以同步控制。但是点击事件是不可以的。
4.圆弧定位
可以用来放小图标
它的作用就是你可以相对于锚点View的中心位置,声明一个角度和距离(半径)来确定View的位置
layout_constraintCircle 是关联的锚点View的id
layout_constraintCircleRadius View的中心点与关联的锚点View的中心点的距离(圆弧半径)
layout_constraintCircleAngle View的中心点与关联的锚点View的中心点的角度关系(0到360度)
官方示意图:
代码效果如下图所示:
3.layout_constraintWidth_default
layout_constraintWidth_default的三种取值
1.默认是spread,意思是占用所有的符合约束的空间
2.percent, 顾名思义就是按