1、依赖
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
2、位置控制的常用属性
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
layout_constraintHorizontal_bias(比例,水平偏移)
layout_constraintVertical_bias (比例,垂直偏移)
3、角度定位
layout_constraintCircle(与某空间绑定,形成角度)
layout_constraintCircleAngle(角度)
layout_constraintCircleRadius(半径)
4、边距
layout_marginStart
layout_marginEnd
layout_marginLeft
layout_marginTop
layout_marginRight
layout_marginBottom
layout_goneMarginStart(只有在对应的约束控件 gone 时,偏移才会生效)
layout_goneMarginEnd(只有在对应的约束控件 gone 时,偏移才会生效)
layout_goneMarginLeft(只有在对应的约束控件 gone 时,偏移才会生效)
layout_goneMarginTop(只有在对应的约束控件 gone 时,偏移才会生效)
layout_goneMarginRight(只有在对应的约束控件 gone 时,偏移才会生效)
layout_goneMarginBottom(只有在对应的约束控件 gone 时,偏移才会生效)
5、控件尺寸
【1】直接设置固定大小
【2】使用wrap_content
【3】使用 0dp,约束布局中,0dp 相当于 match_parent,但官方不推荐在约束布局中使用 match_parent
【4】使用 layout_constraintDimensionRatio 来设置控件的宽高比例
需要注意的是,宽和高至少有一个为 0dp 时,该属性才会生效
app:layout_constraintDimensionRatio="2:1"
以上代码默认是 `宽度 : 高度`
还可以加上字母 `W`或`H`
app:layout_constraintDimensionRatio="W,2:1"(宽度 : 高度)
app:layout_constraintDimensionRatio="H,2:1"(高度 : 宽度)
【5】百分比
layout_constraintWidth_percent
layout_constraintHeight_percent
6、链
当在横向或者纵向形成一条链时,多个元素会自动居中
可以在链头使用以下属性设置链的样式:
layout_constraintHorizontal_chainStyle
layout_constraintVertical_chainStyle
可以设置三个属性
spread:展开元素
spread_inside:展开元素,链头和链尾贴近边缘
packed:所有元素贴在一起
权重也可以改变链的样式:
layout_constraintHorizontal_weight
layout_constraintVertical_weight
7、屏障
<androidx.constraintlayout.widget.Barrier
android:id="@+id/barrier"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="right"
app:constraint_referenced_ids="textview1,textview2"/>
8、组
<androidx.constraintlayout.widget.Group
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:constraint_referenced_ids="textview1,textview2"
android:visibility="invisible"/>
9、占位符
<androidx.constraintlayout.widget.Placeholder
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:content="@+id/textview1" />
10、辅助线
<androidx.constraintlayout.widget.Guideline
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_begin="50dp"/>
<androidx.constraintlayout.widget.Guideline
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_end="50dp"/>
<androidx.constraintlayout.widget.Guideline
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_end="50dp"
app:layout_constraintGuide_percent="0.5"/>
[完...]
网友评论