约束布局ConstraintLayout的使用

1 添加依赖

compile'com.android.support.constraint:constraint-layout:1.1.3'

2 相对定位

基本与rl类似

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 角度定位

app:layout_constraintCircleAngle="120"(中心到中心角度)(顺时针方向)

app:layout_constraintCircleRadius="150dp"(中心到中心距离)

3 边距 

 与rl一样 不过需要注意,要使margin生效,必须具有对应方向的layout_constraint*,否则margin不生效.

另外有个goneMargin

goneMargin主要用于约束的控件可见性被设置为gone的时候使用的margin值

4 居中偏移

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintLeft_toLeftOf="parent"

app:layout_constraintRight_toRightOf="parent"

app:layout_constraintTop_toTopOf="parent"

layout_constraintHorizontal_bias 水平偏移

layout_constraintVertical_bias 垂直偏移

5 尺寸约束

权重app:layout_constraintHorizontal_weight="1"

android:minWidth 最小的宽度

android:minHeight 最小的高度

android:maxWidth 最大的宽度

android:maxHeight 最大的高度

注意!当ConstraintLayout为1.1版本以下时,使用这些属性需要加上强制约束,如下所示:

app:constrainedWidth=”true”

app:constrainedHeight=”true”

使用 0dp (MATCH_CONSTRAINT)

官方不推荐在ConstraintLayout中使用match_parent,可以设置 0dp (MATCH_CONSTRAINT) 配合约束代替match_parent,举个例子:

5 宽高比 

app:layout_constraintDimensionRatio="1:1"


6 链(控件之间要相互关联)

layout_constraintHorizontal_chainStyle

layout_constraintHorizontal_weight  权重链

CHAIN_SPREAD —— 展开元素 (默认);

spread_inside —— 展开元素,但链的两端贴近parent;

packed —— 链的元素将被打包在一起。

其他工具

Guideline辅助线

Guildline像辅助线一样,在预览的时候帮助你完成布局,且不显示在界面上。

Guildline的主要属性:

android:orientation 垂直vertical,水平horizontal

app:layout_constraintGuide_begin 开始位置

app:layout_constraintGuide_end 结束位置

app:layout_constraintGuide_percent 距离顶部的百分比(orientation = horizontal时则为距离左边)

Placeholder 占位

在Placeholder中可使用app:content="@+id/..."设置另一个控件的id,使这个控件移动到占位符的位置

Group 

app:constraint_referenced_ids="..,.."用Group把控件归为一组


 Optimizer 后期补充

Barrier  优化约束屏障

你可能感兴趣的:(约束布局ConstraintLayout的使用)