ConstraintLayout
此表列出了 androidx.constraintlayout
组中的所有工件。
工件 | 稳定版 | 候选版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
constraintlayout | 2.2.0 | - | - | - |
constraintlayout-compose | 1.1.0 | - | - | - |
constraintlayout-core | 1.1.0 | - | - | - |
声明依赖项
要添加对 ConstraintLayout 的依赖项,必须将 Google Maven 代码库添加到您的项目中。阅读 Google 的 Maven 代码库 以了解更多信息。
在应用或模块的 build.gradle
文件中添加所需工件的依赖项
Groovy
dependencies { implementation "androidx.constraintlayout:constraintlayout:2.2.0" // To use constraintlayout in compose implementation "androidx.constraintlayout:constraintlayout-compose:1.1.0" }
Kotlin
dependencies { implementation("androidx.constraintlayout:constraintlayout:2.2.0") // To use constraintlayout in compose implementation("androidx.constraintlayout:constraintlayout-compose:1.1.0") }
有关依赖项的更多信息,请参阅 添加构建依赖项。
反馈
您的反馈有助于改进 Jetpack。如果您发现新的问题或有改进此库的想法,请告诉我们。在创建新的问题之前,请查看此库中 现有问题。您可以通过点击星形按钮来为现有问题投票。
有关更多信息,请参阅 问题跟踪器文档。
ConstraintLayout-compose 和 ConstraintLayout-Core 1.1
1.1.0 版
2024 年 10 月 30 日
androidx.constraintlayout:constraintlayout-compose:1.1.0
、androidx.constraintlayout:constraintlayout-compose-android:1.1.0
和 androidx.constraintlayout:constraintlayout-core:1.1.0
已发布。1.1.0 版包含 这些提交。
自 1.0.0 版以来的重要更改
- 修复了与 SharedTransitionLayout 的交互问题 (b/332898040)。
- 修复了由于重新组合导致的与测量相关的布局问题 (b/219091179,Ibfe8a)。
1.1.0-rc01 版
2024 年 10 月 16 日
androidx.constraintlayout:constraintlayout-compose:1.1.0-rc01
、androidx.constraintlayout:constraintlayout-compose-android:1.1.0-rc01
和 androidx.constraintlayout:constraintlayout-core:1.1.0-rc01
已发布。1.1.0-rc01 版包含 这些提交。
1.1.0-beta01 版
2024 年 9 月 4 日
androidx.constraintlayout:constraintlayout-compose:1.1.0-beta01
、androidx.constraintlayout:constraintlayout-compose-android:1.1.0-beta01
和 androidx.constraintlayout:constraintlayout-core:1.1.0-beta01
已发布。1.1.0-beta01 版包含 这些提交。
1.1.0-alpha14 版
2024 年 8 月 7 日
已发布 androidx.constraintlayout:constraintlayout-compose:1.1.0-alpha14
、androidx.constraintlayout:constraintlayout-compose-android:1.1.0-alpha14
和 androidx.constraintlayout:constraintlayout-core:1.1.0-alpha14
。1.1.0-alpha14 版本包含 这些提交。
API 变更
- 现在通过伴生对象分别提供标志,并且可以使用
or
运算符组合它们。(I9df53) - 简化了
createRow
和createColumn
辅助函数。改进了createGrid
参数名称和文档,以增强清晰度。(Iebc92) - 简化了
ConstraintLayout
中的animateChanges
API,只需一个非空AnimationSpec
。InvalidationStrategy
中的onIncomingConstraints
现在是一个常规 lambda 表达式。fixedWidthRate
重命名为shouldInvalidateOnFixedWith
,高度变量也是如此。(Ie59cd,b/332898040,b/336370035) NestedScroll
源拖动和抛掷正被UserInput
和SideEffect
替换,以适应这些源的扩展定义,这些定义现在包括动画(副作用)和鼠标滚轮和键盘(用户输入)。(I40579)
1.1.0-alpha13 版本
2023 年 10 月 4 日
发布了 androidx.constraintlayout:constraintlayout-compose:1.1.0-alpha13
、androidx.constraintlayout:constraintlayout-compose-android:1.1.0-alpha13
和 androidx.constraintlayout:constraintlayout-core:1.1.0-alpha13
,无任何更改。1.1.0-alpha13 版本包含这些提交。
- 此版本允许
androidx.constraintlayout
库与最新的 Compose 版本在 ABI 上兼容。
1.1.0-alpha12 版本
2023 年 8 月 9 日
已发布 androidx.constraintlayout:constraintlayout-compose:1.1.0-alpha12
、androidx.constraintlayout:constraintlayout-compose-android:1.1.0-alpha12
和 androidx.constraintlayout:constraintlayout-core:1.1.0-alpha12
。1.1.0-alpha12 版本包含这些提交。
API 变更
- 向 Transition DSL 添加了
LayoutScopeMarker
。(If54ce)
1.1.0-alpha11 版本
2023 年 7 月 26 日
已发布 androidx.constraintlayout:constraintlayout-compose:1.1.0-alpha11
、androidx.constraintlayout:constraintlayout-compose-android:1.1.0-alpha11
和 androidx.constraintlayout:constraintlayout-core:1.1.0-alpha11
。1.1.0-alpha11 版本包含这些提交。
新功能
- 现在可以使用
InvalidationStrategy
来优化MotionLayout
中的失效,这通常是性能下降的来源。(Iada0c) - 现在可以使用内联 Modifier DSL (
Modifier.constrainAs
) 将animateChanges = true
用于ConstraintLayout
,每当对约束 DSL 进行更改时,ConstraintLayout
将自动动画到该新状态。(I9abf1) - 启用了
limitBoundsTo
对 OnSwipe 的功能。(I56522)
API 变更
- 将
TransitionScope.staggered
重命名为TransitionScope.maxStaggerDelay
。(I0fd2d)
错误修复
- 修复了
OnSwipe
中的dragScale
参数无效的问题。(8bef26) - 修复了
MotionScene
中的customColor
与透明颜色无法正常工作的问题。(81b2ac) - 修复了
OnSwipe
停止时未正确播报的问题,还修复了touchUp
的初始速度计算。(Ia5f6f) - 更新了
ConstraintLayout
可组合项和Constraintset
的 KDoc。(3bfe63)
1.1.0-alpha10 版本
2023 年 5 月 24 日
已发布 androidx.constraintlayout:constraintlayout-compose:1.1.0-alpha10
、androidx.constraintlayout:constraintlayout-compose-android:1.1.0-alpha10
和 androidx.constraintlayout:constraintlayout-core:1.1.0-alpha10
。1.1.0-alpha10 版本包含这些提交。
API 变更
MotionLayout
Api 不再是实验性的,这代表了MotionLayout
的初始稳定 Api 集。(I288f4)- 已移除
MotionLayoutState
。(Id3ac1) - 现在可以使用
DebugFlags
进行可视化调试:DebugFlags(showBounds = true)
。(Ic714b) - 将扩展变量
Dp.asDimension
更改为方法:Dp.asDimension()
。(I2d6ef) - 现在在
MotionLayout
DSL 中支持交错,使用TransitionScope.staggered
定义最大延迟,也可以使用ConstrainScope.staggeredWeight
(在MotionSceneScope
中)获得自定义交错顺序。(I70275) - 对 Grid 辅助函数进行了两处更改:1. 将
paddingLeft
和paddingRight
分别更改为paddingStart
和paddingEnd
,以及 2. 将gridSpans
和gridSkip
的格式更新为 Span 和 Skip 对象的数组,使其结构更清晰。(Idd1eb)
1.1.0-alpha09 版本
2023 年 3 月 22 日
已发布 androidx.constraintlayout:constraintlayout-compose:1.1.0-alpha09
和 androidx.constraintlayout:constraintlayout-core:1.1.0-alpha09
。1.1.0-alpha09 版本包含这些提交。
API 变更
Modifier.intermediateLayout
现在不需要显式的LookaheadScope
。intermediateLayout
中的测量块使用IntermediateMeasureScope
作为接收器,它提供了方便的CoroutineScope
、LookaheadScope
和MeasureScope
。LookaheadLayout
已被LookaheadScope
替换,它不再是布局。这允许LookaheadScope
中的子内容由父级的MeasurePolicy
直接控制。(Ibe2e5)Easing.Cubic()
现在可以接受超调参数。(I2d826)
1.1.0-alpha08 版本
2023 年 3 月 8 日
已发布 androidx.constraintlayout:constraintlayout-compose:1.1.0-alpha08
和 androidx.constraintlayout:constraintlayout-core:1.1.0-alpha08
。1.1.0-alpha08 版本包含这些提交。
新功能
- 添加了 Lint 检查,建议在典型模式可能导致不可预测的行为的情况下使用
Dimension.percent(1f)
和LayoutReference.withChainParams()
。(I62eb0,I03060)
API 变更
- 为 Compose 中的 Grid 辅助函数启用了
ReverseSpanDirection
和SpansOrderFirst
标志。ReverseSpanDirection
:反转跨度/跳过的宽度和高度规范。SpansOrderFirst
:跨度将遵守 Widget 的顺序。(I6ad50)
- 使用
Modifier.onStartEndBoundsChanged(...)
获取MotionLayout
中不受动画影响的可组合项的局部边界。对于任何需要可能还会触发动画(例如DragAndDrop
)的布局信息的 UI 交互都很有用。(I6b5f9) - 启用 Compose 中的 Grid 辅助函数的跳过和跨度(I917b6)
错误修复
- 修复了平移属性未应用预期值的问题。(I961cd)
1.1.0-alpha07 版本
2023 年 2 月 8 日
已发布 androidx.constraintlayout:constraintlayout-compose:1.1.0-alpha07
和 androidx.constraintlayout:constraintlayout-core:1.1.0-alpha07
。1.1.0-alpha07 版本包含这些提交。
新功能
- 添加了新的 API,可以使用 DSL 启用 Compose 中的 Grid 辅助函数(I1143b)
错误修复
- 修复了 Flow 的
Wrap.Chain
未正确布局到给定maxElement
参数的问题。(e1f2ed3) - 修复了通过
MotionLayout(motionScene: MotionScene, progress: Float, transitionName: String)
更改 Transition 时start
ConstraintSet
未更新的问题。(17ffff1) - 修复了
ConstraintSet
在通过ConstraintSet(extendConstraintSet: ConstraintSet, description: ConstraintSetScope.() -> Unit)
继承约束时未反映某些更改的问题。(740804b)
1.1.0-alpha06 版本
2023 年 1 月 25 日
已发布 androidx.constraintlayout:constraintlayout-compose:1.1.0-alpha06
和 androidx.constraintlayout:constraintlayout-core:1.1.0-alpha06
。1.1.0-alpha06 版本包含这些提交。
新功能
- 添加了新的 Apis,可以使用 JSON 表示法启用 Compose 中的 Grid 辅助函数,这允许将可组合项放置在二维网格中。(I968ad)
API 变更
- 添加了对弧形向上和弧形向下模式
Arc.Above
和Arc.Below
的支持,方向无关的弧形模式到MotionLayout
(I184a9) - 现在可以将基线锚点约束到顶部/底部锚点,反之亦然。(I54628)
- 将
MotionLayoutScope#motionProperties
(包括派生项)重命名为MotionLayoutScope#customProperties
。这是为了与设置自定义属性时保持一致。(Ib34c9) - 现在可以在
ConstraintSet
和MotionScene
中创建多个引用:val (box, text, button) = createRefsFor("box", "text","button")
。使用constrain(box, button, text)
对多个元素应用约束。在ConstrainScope
中,您现在可以使用Dp.asDimension
直观地设置固定尺寸:width = 10.dp.asDimension
。(I021ec,Ia0960) MotionScene()
和Transition()
方法现在是非 Composable 函数。这些函数的对象(包括ConstraintSet
)现在应该可以彼此正确比较。animateChanges = true
在ConstraintLayout
中现在可以只使用一个ConstraintSet
引用,只要其任何属性在重新组合时发生更改。(I7d22e)
错误修复
- 修复了当更改辅助元素时,
ConstraintLayout
总是触发不必要的额外重新组合的问题。(Id83ad,b/222093277) - 修复了在
ConstraintLayout
和MotionLayout
中使用 Intrinsics 时的行为。(I487ae,b/220527863) - 修复了内容更改时无法重新测量的问题。(Ibfe8a,b/219091179)
1.1.0-alpha05 版本
2022 年 12 月 7 日
androidx.constraintlayout:constraintlayout-compose:1.1.0-alpha05
和 androidx.constraintlayout:constraintlayout-core:1.1.0-alpha05
已发布。1.1.0-alpha05 版本包含这些提交。
新功能
- 支持 DSL 中的自定义
KeyAttributes
(b94e748) ConstrainScope
中的表面偏差属性 (32625d0)- 支持链中的自定义参数 (72a2e9e)
- 为 Compose 中的
MotionLayout
添加宏基准测试 (36f43bc) - 有关 Compose 中先前版本更改的更多信息,请参阅wiki 页面
API 变更
- 翻转
addConstraintSet
和addTransition
参数 (152facc)
错误修复
- 修复水平链问题 (ed5f56e)
1.1.0-alpha01 版本
2022 年 5 月 20 日
androidx.constraintlayout:constraintlayout-compose:1.1.0-alpha01
已发布。
请注意,MotionLayout API 处于实验阶段,需要启用。
更多信息,请参阅 GitHub 上的Compose 1.1.0-alpha01 的新增功能。
2.2 版本
2.2.0 版本
2024 年 10 月 30 日
androidx.constraintlayout:constraintlayout:2.2.0
已发布。2.2.0 版本包含这些提交。
自 2.1.0 版本以来的重要更改
- 与底层 constraintlayout-core 库的版本一致性发布。
2.2.0-rc01 版本
2024 年 10 月 16 日
androidx.constraintlayout:constraintlayout:2.2.0-rc01
已发布。2.2.0-rc01 版本包含这些提交。
2.2.0-beta01 版本
2024 年 9 月 4 日
androidx.constraintlayout:constraintlayout:2.2.0-beta01
已发布。2.2.0-beta01 版本包含这些提交。
2.2.0-alpha14 版本
2024 年 8 月 7 日
androidx.constraintlayout:constraintlayout:2.2.0-alpha14
已发布。2.2.0-alpha14 版本包含这些提交。
2.2.0-alpha13 版本
2023 年 10 月 4 日
androidx.constraintlayout:constraintlayout:2.2.0-alpha13
已发布,无更改。2.2.0-alpha13 版本包含这些提交。
2.2.0-alpha12 版本
2023 年 8 月 9 日
androidx.constraintlayout:constraintlayout:2.2.0-alpha12
已发布。2.2.0-alpha12 版本包含这些提交。
2.2.0-alpha11 版本
2023 年 7 月 26 日
androidx.constraintlayout:constraintlayout:2.2.0-alpha11
已发布。2.2.0-alpha11 版本包含这些提交。
API 变更
- 添加一个 setter 方法,允许开发者以编程方式设置
mInfiniteCarousel
的值 (I0a8ca)
2.2.0-alpha10 版本
2023 年 5 月 24 日
androidx.constraintlayout:constraintlayout:2.2.0-alpha10
已发布。2.2.0-alpha10 版本包含这些提交。
错误修复
- 修复
MotionLayout
文档中损坏的链接。(51cbe88)
2.2.0-alpha09 版本
2023 年 3 月 22 日
androidx.constraintlayout:constraintlayout:2.2.0-alpha09
已发布。2.2.0-alpha09 版本包含这些提交。
2.2.0-alpha08 版本
2023 年 3 月 8 日
androidx.constraintlayout:constraintlayout:2.2.0-alpha08
已发布。2.2.0-alpha08 版本包含这些提交。
2.2.0-alpha07 版本
2023 年 2 月 8 日
androidx.constraintlayout:constraintlayout:2.2.0-alpha07
已发布。2.2.0-alpha07 版本包含这些提交。
错误修复
- 修复
ConstraintLayout
页面内容缺失问题。(I82e25)
2.2.0-alpha05 版本
2022 年 12 月 7 日
androidx.constraintlayout:constraintlayout:2.2.0-alpha05
已发布。2.2.0-alpha05 版本包含这些提交。
- 有关先前版本更改的更多信息,请参阅Github wiki 页面
错误修复
- 修复视图轮播中的内存泄漏问题 (eb67b82)
2.2.0-alpha01 版本
2022 年 5 月 20 日
androidx.constraintlayout:constraintlayout:2.2.0-alpha01
已发布。
包含新 Grid
辅助工具的预览。
更多信息,请参阅 GitHub 上的2.2.0-alpha01 的新增功能。
ConstraintLayout-compose 1.0
ConstraintLayout-compose 1.0 在 Jetpack Compose 中提供 ConstraintLayout 功能。
1.0.1 版本
2022 年 5 月 20 日
androidx.constraintlayout:constraintlayout-compose:1.0.1
已发布。
请注意,MotionLayout API 处于实验阶段,需要启用。
更多信息,请参阅 GitHub 上的Compose 1.0.1 的新增功能。
1.0.0 版本
2022 年 1 月 13 日
androidx.constraintlayout:constraintlayout-compose:1.0.0
已发布。
请注意,MotionLayout api 现在处于实验阶段,需要启用。
更多信息,请参阅 GitHub 文章1.0 (Compose) 的新增功能。
1.0.0-rc02 版本
2021 年 11 月 16 日
androidx.constraintlayout:constraintlayout-compose:1.0.0-rc02
已发布。
更多信息,请参阅 GitHub 文章1.0 (Compose) 的新增功能。
1.0.0-rc01 版本
2021 年 9 月 27 日
androidx.constraintlayout:constraintlayout-compose:1.0.0-rc01
已发布。
此版本是第二个 Beta 版本。它被认为功能完整,为 Compose 提供了 ConstraintLayout
和 MotionLayout
。
更多信息,请参阅 GitHub 文章1.0 (Compose) 的新增功能。
1.0.0-beta02 版本
2021 年 7 月 30 日
androidx.constraintlayout:constraintlayout-compose:1.0.0-beta02
已发布。
此版本是第二个 Beta 版本。它被认为功能完整,为 Compose 提供了 ConstraintLayout
和 MotionLayout
。
更多信息,请参阅 GitHub 文章1.0 (Compose) 的新增功能。
1.0.0-beta01 版本
2021 年 7 月 22 日
androidx.constraintlayout:constraintlayout-compose:1.0.0-beta01
已发布。
此版本是第一个 Beta 版本。它被认为功能完整,为 Compose 提供了 ConstraintLayout
和 MotionLayout
。
更多信息,请参阅 GitHub 文章1.0 (Compose) 的新增功能。
1.0.0-alpha07 版本
2021 年 5 月 18 日
androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha07
已发布。
- 更新为兼容 Compose 版本
1.0.0-beta07
。
1.0.0-alpha06 版本
2021 年 5 月 4 日
androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha06
已发布。
- Compose 优化:ConstraintLayout 内联可组合项 (#193)
- 最大限度地减少 Compose 中的重新测量 (#210)
1.0.0-alpha05 版本
2021 年 3 月 15 日
androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha05
已发布。
- 包含对优化引擎的修复 (b/182657720)
- 为 ConstraintLayout 可组合项添加 optimizationLevel 参数
1.0.0-alpha04 版本
2021 年 3 月 11 日
androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha04
已发布。
更新为使用最新的 constraintlayout-core 引擎
1.0.0-alpha03 版本
2021 年 2 月 24 日
androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha03
已发布。
Jetpack Compose beta01 版本的更新
1.0.0-alpha02 版本
2021 年 2 月 10 日
androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha02
已发布。
Jetpack Compose alpha12 版本的更新
1.0.0-alpha01 版本
2021 年 2 月 2 日
androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha01
已发布。
库的第一个版本,提供内联和外部 DSL 来表达约束。
2.1 版本
ConstraintLayout 2.1.0 在 MotionLayout 中提供了更丰富的功能和新的辅助工具(Carousel 等)。
2.1.4 版本
2022 年 5 月 20 日
androidx.constraintlayout:constraintlayout:2.1.4
已发布。
更多信息,请参阅 GitHub 上的2.1.4 的新增功能。
2.1.3 版本
2022 年 1 月 13 日
androidx.constraintlayout:constraintlayout:2.1.3
已发布。
更多信息,请参阅 GitHub 文章2.1 的新增功能。
2.1.2 版本
2021 年 11 月 16 日
androidx.constraintlayout:constraintlayout:2.1.2
已发布。
更多信息,请参阅 GitHub 文章2.1 的新增功能。
2.1.1 版本
2021 年 9 月 27 日
androidx.constraintlayout:constraintlayout:2.1.1
已发布。
这是 2.1.1 的最终版本。
更多信息,请参阅 GitHub 文章2.1 的新增功能。
2.1.0 版本
2021 年 7 月 30 日
androidx.constraintlayout:constraintlayout:2.1.0
已发布。
这是 2.1.0 的最终版本。
更多信息,请参阅 GitHub 文章2.1 的新增功能。
2.1.0-rc01 版本
2021 年 7 月 22 日
androidx.constraintlayout:constraintlayout:2.1.0-rc01
已发布。
这是 2.1.0 的候选版本,提供了自上次 Beta 版本以来的少量改进和修复。更多信息,请参阅 GitHub 文章2.1 的新增功能。
2.1.0-beta02 版本
2021 年 5 月 4 日
androidx.constraintlayout:constraintlayout:2.1.0-beta02
已发布。
MotionLayout 中的一些新功能
- OnSwipe增强,包括弹簧效果(刚度、阻尼、质量等)和永不完成动画
- jumpToState 函数
- ViewTransition 的 downUp 模式,触摸按下时动画播放到 100,抬起时反向播放到 0
各种修复,尤其包括:
- 修复 MotionLayout 中的垂直滚动问题 (#173)
- 提升嵌套 MotionLayout 的性能 (#189)
- 加快 MotionLayout 中嵌套 NestedScrollView 的过渡动画 (#189)
- 修复 MotionLayout 中 ConstraintSet 的 gone 属性 (#189)
- 在 MotionLayout 中支持 downUp ViewTransitions (#190)
- 修复 ImageFilter 在重用 drawable 时的错误 (#192)
- 在 MotionLayout 中添加弹簧支持 (#199)
- 提升 CircularFlow 的性能 (#200)
- 修复派生约束/约束覆盖的问题 (#212)
2.1.0-beta01 版本
2021 年 3 月 11 日
androidx.constraintlayout:constraintlayout:2.1.0-beta01
已发布。
ConstraintLayout
由于兼容性问题,`android:layout_width` 和 `android:layout_height` 属性不再可选。
MotionLayout
- 支持以编程方式插入和移除 Transition 的 onSwipe 和 onClick 事件
- 实验性地支持通过屏幕旋转触发 Transition
- 支持为 Transition 设置时长参数
- 更好地支持布尔值或引用类型的自定义属性
辅助工具
- 添加了一种方法来动画或直接跳转到轮播图的指定项目
- 新的 CircularFlow 辅助工具
查看此版本的更多信息,请访问 这里 和 已修复的 bug 列表。
2.1.0-alpha2 版本
2020年12月17日
androidx.constraintlayout:constraintlayout:2.1.0-alpha2
已发布。
第二个 alpha 版本添加了一些新功能:
ConstraintLayout
- `android:layout_width` 和 `android:layout_height` 属性现在可选,默认值为 `wrap_content`
- 新增 `layout_constraintWidth` 和 `layout_constraintHeight` 属性用于表达尺寸约束
- 支持负边距约束
- 支持基线到顶部和基线到底部的约束
- 支持基线边距约束
- SharedValues 允许将外部值注入到 ConstraintLayout 中
MotionLayout
- 支持过度插值器 (anticipate, overshoot)
- 增强了 MotionHelper 的支持
- 添加了 ConstraintSet 的动画更新功能到 MotionLayout: `updateStateAnimate(id,cset,duration);`
- 基于 SharedValue 的 ViewTransition
- `scheduleTransitonTo` 允许你排队一个 transition,在当前 transition 完成后运行。
辅助工具
- 轮播图现在支持无限循环模式
- ReactiveGuide:当 SharedValue 发生变化时,自动调整自身位置的 Guideline。
- MotionEffect:向在给定方向移动的引用视图注入关键帧。
- MotionLabel:用于动画单行文本的 View。
查看此版本的更多信息,请访问 这里。
2.1.0-alpha1 版本
2020年11月19日
androidx.constraintlayout:constraintlayout:2.1.0-alpha1
已发布。
2.1 版本的第一个 alpha 版本,引入了对以下内容的支持:
- Carousel motion helper,用于构建自定义轮播视图
- MotionLayout 场景支持 include 和约束覆盖
- MotionLayout 添加了更丰富的旋转支持(输入和输出)
- MotionLayout 添加了 ViewTransitions,允许对 ConstraintSet 进行单视图过渡。
查看此版本的更多信息,请访问 这里。
2.0 版本
ConstraintLayout 2.0 为布局添加了新功能(虚拟布局等),并添加了一个用于简化视图动画的新类 MotionLayout。
2.0.4 版本
2020年10月29日
androidx.constraintlayout:constraintlayout:2.0.4
已发布。
错误修复
此版本修复了运行时移除子视图时可能发生的潜在 NPE 问题。建议更新到此版本。
查看已修复问题的列表,请访问 这里。
2.0.3 版本
2020年10月27日
androidx.constraintlayout:constraintlayout:2.0.3
已发布。
错误修复
此版本修复了一些问题。建议更新到此版本。
- 窗口内边距处理
- 某些情况下尺寸比例的处理
- 一些 RTL 布局中的崩溃问题
查看已修复问题的列表,请访问 这里。
2.0.2 版本
2020年10月6日
androidx.constraintlayout:constraintlayout:2.0.2
已发布。
错误修复
此版本提高了性能,并修复了一些问题。建议更新到此版本。
- 某些情况下,ConstraintLayout 中视图 GONE 可见性的处理不正确
- 某些情况下,ConstraintLayout 中打包链的处理不正确
- 修复了 API 15 上 Flow 虚拟布局辅助工具的 inflation 异常
- MotionLayout 中 `limitsBoundsTo` 属性失效
- 某些情况下 MotionLayout 中跳转到结束动画失效(链式 Transition)
查看已修复问题的列表,请访问 这里。
2.0.1 版本
2020年8月25日
androidx.constraintlayout:constraintlayout:2.0.1
已发布。
这是一个小更新,允许在 Android Studio 中使用 MotionEditor。
2.0.0 版本
2020年8月21日
androidx.constraintlayout:constraintlayout:2.0.0
已发布。
错误修复
查看已修复问题的列表,请访问 这里。
值得注意的修复包括:
- MotionLayout Transition 延迟和 TransitionListener 修复
- ConstraintLayout flow 和 barrier 修复
2.0.0-rc1 版本
2020年7月29日
androidx.constraintlayout:constraintlayout:2.0.0-rc1
已发布。
错误修复
查看已修复问题的列表,请访问 这里。
值得注意的修复包括:
- Flow 修复
- RecyclerView 修复(我们建议更新到 recyclerview 1.2.0 alpha 5 或更高版本)
- MotionLayout TransitionListener 修复
- MotionLayout 内存泄漏修复
2.0.0-beta8 版本
2020年7月7日
androidx.constraintlayout:constraintlayout:2.0.0-beta8
已发布。
错误修复
查看已修复问题的列表,请访问 这里。
值得注意的修复包括:
- 占位符行为
- 图层可见性
- Flow、Barrier 修复
- TransitionListener 修复
2.0.0-beta7 版本
2020年6月12日
androidx.constraintlayout:constraintlayout:2.0.0-beta7
已发布。
错误修复
查看已修复问题的列表,请访问 这里。
值得注意的修复包括:
- MotionLayout 中嵌套滚动视图问题
- MotionLayout 中 Transition listener 问题
- MotionLayout 中内存泄漏
- RecyclerView 问题
- 组可见性
- 填充问题
2.0.0-beta6 版本
2020年5月13日
androidx.constraintlayout:constraintlayout:2.0.0-beta6
已发布。
错误修复
查看已修复问题的列表,请访问 这里。值得注意的修复包括 MotionLayout 中的组可见性处理和派生约束问题。
2.0.0-beta5 版本
2020年5月7日
androidx.constraintlayout:constraintlayout:2.0.0-beta5
已发布。
错误修复
查看已修复问题的列表,请访问 这里
2.0.0-beta4 版本
2019年12月16日
androidx.constraintlayout:constraintlayout:2.0.0-beta4
已发布。
新功能
MotionLayout
Transition 中的新属性:
- `layoutDuringTransition`:允许你配置 MotionLayout 在过渡期间如何响应子视图的 requestLayouts 调用。可能的值为 `{ignoreRequest, honorRequest}`
- `pathMotionArc`:移动元素所经过的路径将使用弧线。可能的值为 `{startVertical | startHorizontal | flip | none}`
现在可以定义默认的 Transition,只需省略起始和结束 ConstraintSet 即可。如果找不到其他匹配当前起始/结束状态的 Transition,则将使用此默认 Transition。
错误修复
查看已修复问题的列表,请访问 这里