android约束布局的优缺点,Android约束布局ConstraintLayout由浅入深的使用总结

本文详细介绍了Android约束布局ConstraintLayout的优缺点,重点解析了其基本和高级用法,包括定位、间距、尺寸大小的设置,以及强制约束、Barrier、Guideline、Group和Chain的概念和应用场景。通过实例展示了如何利用ConstraintLayout实现复杂布局效果。
摘要由CSDN通过智能技术生成

优缺点

优点

极大程度减少布局层级

可以实现一些其他布局管理器不能实现的样式

缺点

每个被参考的控件都需要设置id

以下所有描述都是针对ConstraintLayout下子控件的,通用的属性在此不再叙述,只针对ConstraintLayout独有属性进行探讨。

基本用法

一、定位

1. 相对定位

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:文字Baseline对齐

layout_constraintStart_toEndOf

layout_constraintStart_toStartOf

layout_constraintEnd_toStartOf

layout_constraintEnd_toEndOf

以下代码表示tv2顶部与tv1顶部对齐

...

>

android:id="@+id/tv1"

...

/>

android:id="@+id/tv2"

...

app:layout_constraintTop_toTopOf="@id/tv1" />

2. 圆形定位

layout_constraintCircle : 参考控件的id

layout_constraintCircleRadius : 本控件与参考控件中心点间距

layout_constraintCircleAngle : 角度0~360

bae856661258

一图胜千言

以下代码表示Textview中心位于id为targetId控件的中心距离30dp角度为30度的位置

...

>

...

app:layout_constraintCircle="@id/targetId"

app:layout_constraintCircleAngle="30"

app:layout_constraintCircleRadius="30dp"/>

3. 百分比定位(bias)

layout_constraintHorizontal_bias

layout_constraintVertical_bias

取值范围0~1,默认值0.5

以下代码表示Textview中心位置位于ConstraintLayout宽度的30%处

...

>

...

app:layout_constraintHorizontal_bias="0.3"

app:layout_constraintLeft_toLeftOf="parent"

app:layout_constraintRight_toRightOf="parent"/>

4. 居中对齐

所有居中对其需要设置对应方向尺寸大小为wrap_content或固定值

水平居中

以下代码表示Textview相对于ConstraintLayout水平居中

...

>

...

android:layout_width="60dp"

app:layout_constraintLeft_toLeftOf="parent"

app:layout_constraintRight_toRightOf="parent"/>

注意:

这里的left和right换成start和end也是可以的

这里的parent换成参考控件的id也是可以的

垂直居中

以下代码表示Textview相对于ConstraintLayout垂直居中

...

>

...

android:layout_height="60dp"

app:layout_constraintTop_toTopOf="parent"

app:layout_constraintBottom_toBottomOf="parent"/>

注意:这里的parent换成参考控件的id也是可以的

5. 单边对齐

以下代码表示tv2和tv3与tv1顶部对齐

...

>

android:id="@+id/tv1"

...

/>

android:id="@+id/tv2"

...

app:layout_constraintTop_toTopOf="@id/tv1" />

android:id="@+id/tv3"

...

app:layout_constraintTop_toTopOf="@id/tv1" />

注意:这里写法比较多样,以上展示的都是以统一的单个控件为参考点,也可以以相关控件为参考点,比如这里的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值