看这个效果,有没有一种「五马分尸」的感觉?当只有一条边拉这个 Button
时,Button
马上就被拉过去了,但是当四个边都开始拉这个 Button
时,Button
就在中间动弹不得了。
看完了动图,我们再来看看 XML
布局中的变化:
因为我们的目的是想让这个 Button
居中,但是它却默认给我们添加了 margin
,这个显然是多余的。
如果不想每次添加约束后都在这条边的约束上添加 margin
,我们可以在上面的工具栏中进行设置:
抛去 margin
相关的属性,那么约束父控件的相关属性就是如下这些了:
app:layout_constraintTop_toTopOf=“parent”
app:layout_constraintLeft_toLeftOf=“parent”
app:layout_constraintRight_toRightOf=“parent”
app:layout_constraintBottom_toBottomOf=“parent”
在上面的图中我们已经看到了,每个控件的上下左右都有一个圆圈,用于添加约束的。
那么这些属性的 constraintXXX
就是指定的当前控件的约束位置的,而 toXXX
就是目标约束位置。
这个位置可以是上面的例子一样是 parent
(也就是父控件),也可以是另一个控件。
接下来我们再来看看对于其他控件的约束。
再拖一个 Buttton
进入蓝图中,然后给这个 Button
添加约束:
XML
布局:
添加完约束了,如果要删除指定的单个约束的话,单击变红的圆圈即可:
或者是上面提到了,删除指定控件的所有约束。
或者是工具栏中的,删除页面所有的约束