控件如何确定自己的位置
控件如何确定自己的位置,最简单的基本操作就是:
layout_constraint[自己位置]_[目标位置]=目标ID
基本布局属性:
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_constraintStart_toEndOf
layout_constraintStart_toStartOf
layout_constraintEnd_toStartOf
layout_constraintEnd_toEndOf
layout_constraintBaseline_toBaselineOf
复制代码
举个例子:
可以看到B在A的右边,我们可以这么写:<Button android:id="@+id/buttonA" ... />
<Button android:id="@+id/buttonB" ...
app:layout_constraintLeft_toRightOf="@+id/buttonA" />
复制代码
可以理解B的左边在A的右边,这样B就贴在A的右边了。
我们发现上面还有一个layout_constraintBaseline_toBaselineOf
,直接看下图就可以理解所有相关的属性:
如果是相对于父布局,我们也可以不写入另外一个控件的id值,直接填parent值就可以了
<android.support.constraint.ConstraintLayout ...>
<Button android:id="@+id/button" ...
app:layout_constraintLeft_toLeftOf="parent" />
<android.support.constraint.ConstraintLayout/>
复制代码
Margin相关
当A处于gone的时候,我们可以让B的margin值是根据以下的属性值:layout_goneMarginStart
layout_goneMarginEnd
layout_goneMarginLeft
layout_goneMarginTop
layout_goneMarginRight
layout_goneMarginBottom
复制代码
水平和垂直方向所占比例
layout_constraintHorizontal_bias
layout_constraintVertical_bias
复制代码
- 水平居中
<android.support.constraint.ConstraintLayout ...>
<Button android:id="@+id/button" ...
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent/>
<android.support.constraint.ConstraintLayout/>
复制代码
- 水平方向占比
<android.support.constraint.ConstraintLayout ...>
<Button android:id="@+id/button" ...
app:layout_constraintHorizontal_bias="0.3"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent/>
</android.support.constraint.ConstraintLayout>
复制代码
圆形布局
例如:<Button android:id="@+id/buttonA" ... />
<Button android:id="@+id/buttonB" ...
app:layout_constraintCircle="@+id/buttonA"
app:layout_constraintCircleRadius="100dp"
app:layout_constraintCircleAngle="45" />
复制代码
尺寸限制
- 对ConstraintLayout进行限制
android:minWidth设置布局的最小宽度
android:minHeight设置布局的最小高度
android:maxWidth设置布局的最大宽度
android:maxHeight设置布局的最大高度
复制代码
- 对内部的控件进行限制
// WRAP_CONTENT
app:layout_constrainedWidth ="true|false"
app:layout_constrainedHeight ="true|false"
// MATCH_CONSTRAINT(也就是0dp)
layout_constraintWidth_min和layout_constraintHeight_min:将设置此维度的最小尺寸
layout_constraintWidth_max和layout_constraintHeight_max:将设置此维度的最大尺寸
layout_constraintWidth_percent和layout_constraintHeight_percent:将设置此维度的大小为父级的百分比
复制代码
- 宽高比
app:layout_constraintDimensionRatio="W|H,1:1"
复制代码
链
链样式:layout_constraintHorizontal_chainStyle
layout_constraintVertical_chainStyle
复制代码
其他辅助控件
- Guideline
- Barrier
- Group
- Placeholder 这些在分享的时候在演示QAQ