api地址:https://developer.android.com/reference/android/support/constraint/ConstraintLayout
类的介绍
注意:1,不能使用循环嵌套;2,每个组件设置id
用法
1,相对定位:
原图:
<Button android:id="@+id/buttonA" ... />
<Button android:id="@+id/buttonB" ...
app:layout_constraintLeft_toRightOf="@+id/buttonA" />
eg:第一个left:自身控件左边,第二个left:相对于buttonA,buttonA的左边
layout_constraintLeft_toLeftOf“@+id/buttonA”
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
如果要让控件居中显示:设置上下左右相对parent的上下左右就行
效果:
代码:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/cl"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:gravity="center_horizontal"
android:orientation="vertical"
tools:context=".LoginActivity">
<ProgressBar
android:id="@+id/pb"
android:layout_width="100dp"
android:layout_height="100dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
/>
</android.support.constraint.ConstraintLayout>
2,边距
margin设置的值大于等于0
android:layout_marginStart
android:layout_marginEnd
android:layout_marginLeft
android:layout_marginTop
android:layout_marginRight
android:layout_marginBottom
还可以将边距设置成百分比,有点类似于LinearLayout中的weight
有水平,垂直两种:
layout_constraintHorizontal_bias
layout_constraintVertical_bias
实现代码:a占0.3,b占0.8具体效果对比看下图
<Button
android:id="@+id/btn_A"
android:text="A"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintHorizontal_bias="0.3"
/>
<Button
android:id="@+id/btn_B"
android:text="B"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintHorizontal_bias="0.8"
app:layout_constraintTop_toBottomOf="@+id/btn_A"
/>
3,Circle Position
效果图:
相关属性:
layout_constraintCircle
:引用另一个小部件IDlayout_constraintCircleRadius
:到其他小部件中心的距离layout_constraintCircleAngle
:小部件应该处于哪个角度(以度为单位,从0到360)
4, Chains