Android中约束布局baseline,约束布局ConstraintLayout(一)

本文详细介绍了Android中的ConstraintLayout,包括其解决布局嵌套问题的作用、使用方法如相对定位、角度定位、边距设置、居中偏移、尺寸约束和链条。讲解了如何通过添加依赖、设置约束属性来创建和调整视图,以及使用baseline对齐和权重链。ConstraintLayout提供更灵活的布局设计,提升性能并适应不同屏幕尺寸。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1.介绍

2.为什么要用ConstraintLayout

3.如何使用ConstraintLayout

3.1 添加依赖

3.2 相对定位

3.3 角度定位

3.4 边距

3.5 居中和偏移

3.6 尺寸约束

3.7 Chains

4.总结

1.介绍

约束布局ConstraintLayout 是一个ViewGroup,可以在Api9以上的Android系统使用它,它的出现主要是为了解决布局嵌套过多的问题,以灵活的方式定位和调整小部件。

从 Android Studio 2.3 起,官方的模板默认使用 ConstraintLayout。

2.为什么要用ConstraintLayout

在开发过程中经常能遇到一些复杂的UI,可能会出现布局嵌套过多的问题,嵌套得越多,设备绘制视图所需的时间和计算功耗也就越多。简单举个例子:

AAffA0nNPuCLAAAAAElFTkSuQmCC

假设现在要写一个这样的布局,可能有人会这么写:

首先是一个垂直的LinearLayout,里面放两个水平的LinearLayout,然后在水平的LinearLayout里面放TextView。这样的写法就嵌套了两层LinearLayout。

AAffA0nNPuCLAAAAAElFTkSuQmCC

有些人考虑到了嵌套布局带来的风险,所以用一个RelativeLayout来装下所有的控件。那么问题来了,既然用RelativeLayout可以解决问题,为什么还要使用ConstraintLayout呢?因为ConstraintLayout使用起来比RelativeLayout更灵活,性能更出色!还有一点就是ConstraintLayout可以按照比例约束控件位置和尺寸,能够更好地适配屏幕大小不同的机型。

3.如何使用ConstraintLayout

3.1 添加依赖

首先我们需要在app/build.gradle文件中添加ConstraintLayout的依赖,如下所示。

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

3.2 相对定位

相对定位是部件对于另一个位置的约束,这么说可能有点抽象,举个例子:

AAffA0nNPuCLAAAAAElFTkSuQmCC

如图所示,TextView2在TextView1的右边,TextView3在TextView1的下面,这个时候在布局文件里面应该这样写:

android:id="@+id/TextView1"

...

android:text="TextView1" />

android:id="@+id/TextView2"

...

app:layout_constraintLeft_toRightOf="@+id/TextView1" />

android:id="@+id/TextView3"

...

app:layout_constraintTop_toBottomOf="@+id/TextView1" />

上面代码中在TextView2里用到了app:layout_constraintLeft_toRightOf="@+id/TextView1"这个属性,他的意思是把TextView2的左边约束到TextView1的右边,如下图所示:

AAffA0nNPuCLAAAAAElFTkSuQmCC

同理TextView3在TextView1的下面,就需要用到app:layout_constraintTop_toBottomOf="@+id/TextView1",即把TextView3的上面约束到TextView1的下面。

下面来看看相对定位的常用属性:

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_t

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值