Android开发之ConstraintLayout

本文介绍了如何使用约束布局,通过类似图形化方式设置组件位置,理解辅助线的作用,以及如何利用推导约束功能自动创建约束,确保代码与预览一致性。

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

不同于以往的布局,约束布局可以不写代码,而是用类似图形化编程的方式进行布局。

基本功能

新建一个空白项目,进入后就可以看到默认代码本身就是约束布局:
在这里插入图片描述
在右侧预览界面,选中Hello World的文本框,按delete就可以删除,我们可以看到代码也发生了相应的变化:
在这里插入图片描述
在设计界面左侧,我们可以选择组件,拖动放置到预览屏幕中:
在这里插入图片描述
但此时,如果运行虚拟机,会发现该按钮处于屏幕斜上方,与预览界面显示的不一致:
在这里插入图片描述

这是因为我们没有对该组件进行约束,导致组件默认放置于左上角。点击组件四周的圆圈,将其拖动至屏幕边缘,就可以让组件被拉动到紧贴边缘的位置。当四个圆圈都添加约束后,组件就被居中了,如图所示。
在这里插入图片描述
约束布局也可以进行子组件之间相对布局,也是通过组件四周的圆圈之间连接并拖动达成的:
在这里插入图片描述
而右侧的Layout窗口则可以设置组件的偏移,与父容器的间距等:
在这里插入图片描述
其中的箭头可以点击,来切换组件的宽高是wrap_contentmatch_parent还是fixed,与代码中的对应。
在这里插入图片描述
按钮的文本、id等属性都可以在右侧编辑……

辅助线

因为约束布局类似于图形编程,所以设置一些辅助线方便我们作图也是很合理的,点击左上方的guideline,就可以添加辅助线。点击显示在屏幕上方的圆圈,可以切换尺度(比如像素绝对值、百分比),当我们想要做一条垂直的中线时,就可以切换到百分比,然后拖动至50%处(拖动点击的位置比较苛刻,需要在圆圈底端与屏幕相切处):
在这里插入图片描述
借助这条辅助线,我们就能做出关于中线对称等效果(点击左上角眼睛图案可以选择显示所有约束):
在这里插入图片描述

推导约束

前面也说了,必须要有约束,组件的位置才能跟预览界面一致,否则会默认到左上角。但推导约束(Infer Constraint)可以根据当前拖动出来的布局自动创建约束,堪称大杀器。

先清除我们已有的约束(此时运行模拟器可以看到两个按钮都跑到了左上角):
在这里插入图片描述
再点击推导约束:
在这里插入图片描述
就可以发现自动生成了许多新约束,使得虚拟机运行结果与预览效果一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShadyPi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值