自动添加约束的方式主要有两种,一种叫 Autoconnect,一种叫 Inference,我们先来看第一种。
想要使用 Autoconnect,首先需要在工具栏中将这个功能启用,默认情况是不启用的:
Autoconnect 可以根据我们拖放控件的状态自动判断应该如何添加约束,比如我们将 Button 放到界面的正中央,那么它的上下左右都会自动地添加上约束:
不过 Autoconnect 是无法保证百分百准确判断出我们的意图的,如果自动添加的约束并不是你想要的话,还可以在任何时候进行手动修改。总之,可以把它当成一个辅助工具,但不能完全靠它去添加控件的约束。
Inference 也是用于自动添加约束的,但它比 Autoconnect 的功能要更为强大,因为 AutoConnect 只能给当前操作的控件自动添加约束,而 Inference 会给当前界面中的所有元素自动添加约束。因而 Inference 比较适合用来实现复杂度比较高的界面,它可以一键自动生成所有的约束。下面举例说明。
比如界面上现在有两个 TextView,两个 EditText,和两个 Button。
先将各个控件按照界面设计的位置进行摆放,摆放完成之后点击一下工具栏上的 Infer Constraints 按钮,就能为所有控件自动添加约束了:
最总效果: