ConstraintLayout 笔记

本文详细介绍了Android开发中ConstraintLayout的Chains特性,它允许视图共享空间并控制空间分配。Chain模式用于指定空间填充方式,而weight属性则用于设定视图在链中的相对大小。通过设置`layout_constraintHorizontal_weight`和`layout_constraintVertical_weight`,可以实现视图按比例填充剩余空间。此外,还讲解了`layout_constraintDimensionRatio`属性用于设置视图的宽高比例。最后,讨论了`MatchConstraints`的行为及其相关属性,如`spread`和`wrap`模式,以及最小和最大宽度限制。

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

Chains

Chains(链)是一种特定的约束,一个链包含了多个视图,它允许链中的视图共享空间,并控制可用空间在它们之间如何分配。该效果与 LinearLayoutWeiget 类似,但是链的作用远远超过它。

Cycle Chain Mode(链式模式)来告诉 Chains:“你应该怎样去填充剩余的空间”。

layout_constraintHorizontal_chainStyle
layout_constraintVertical_chainStyle

分别对应着「水平链」和「垂直链」。

有三种可选的参数:

在这里插入图片描述

除了上面说的之外,Chains 还能对链中单独的视图控件设置 Weiget。因为目前并不支持在编辑器当中设置 Weiget,所以我们只能在布局中进行设置了,设置的属性是:

layout_constraintHorizontal_weight
layout_constraintVertical_weight

我们现在将第一个 Button 填充完剩余的空间,在该 Buttton 上设置如下属性:

android:layout_width="0dp"
app:layout_constraintHorizontal_weight="1"

Properties

这里写图片描述:这个代表的是:Match Constraints(有点类似于 match_parent),就给强翻成约束匹配吧… 这个是 ConstraintLayout 特有的,它会尽可能扩展以满足各方的约束(在考虑视图边界之后)。但是,可以使用以下属性和值修改该行为(只有在将视图宽度设置为与约束匹配时,这些属性才会生效):

  • layout_constraintWidth_default:
    • spread:这是默认的行为,它会尽可能的扩展视图来满足约束。
    • wrap:与上面所说的 wrap_content 不同的是,虽然都是适应内容,但仍然允许视图比约束要求的视图更小。
  • layout_constraintWidth_min:指定视图的最小宽度(dp)。
  • layout_constraintWidth_max:指定视图的最大宽度(dp)。

当宽高至少有一项设置为 0dp 时(也就是 Match Constraints),那么我们就可以为该视图设置宽高比例。设置的属性是:

layout_constraintDimensionRatio

<Button
    android:id="@+id/button"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:text="button"
    app:layout_constraintDimensionRatio="3:1"/>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值