介绍
ConstraintLayout 是 Android 中一种强大的布局方式,允许你在布局中通过约束的方式定义视图之间的相对关系,提供了更灵活且高效的布局功能。
基础操作
添加约束
添加一个控件,将控件拖动到编辑区中,鼠标单击控件,控件上下左右会出现四个空心圆圈,代表可添加的约束
鼠标移动到圆圈上,可以左键进行拖动,可以移动到父布局来添加约束
去除约束
选中控件,右侧Layout栏目里,可以通过单击如下×
来去除该方向上的约束
设置水平方向和垂直方向上的距离百分比
拖动下图中的水平条和垂直条来设置控件的位置
设置父布局边缘间距
如下图中的四个值为他们对应方向上的边缘间距
控件间约束
约束不止可以添加在父布局中,也可以将一个控件的约束添加到另一个控件上,约束方法同上面的一样
高级约束
Chains
选中多个控件,右键->Chains->Create Horizontal Chains
有三种分配方式spread、spread inside、packed
- spread:控件包括第一个控件和最后一个两边均匀分配
- spread inside:第一个控件和最后一个控件两边不分配空间
- packed:所有控件挨在一起,第一个控件和最后一个控件两边均匀分配父控件的剩余空间
尺寸约束
在其他布局中,控件的尺寸单位有wrap_content
、dp固定值
、match_parent
三种值,在约束布局中的控件还可以给其设置MATCH_CONSTRAINT(0dp)
,该值的含义代表约束尺寸,即控件的尺寸由其左右两边的约束来控制。
其他更详细的内容见:ConstraintLayout约束布局最全解析