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.0androidx.constraintlayout:constraintlayout-compose-android:1.1.0androidx.constraintlayout:constraintlayout-core:1.1.0 已发布。1.1.0 版包含 这些提交

自 1.0.0 版以来的重要更改

  • 修复了与 SharedTransitionLayout 的交互问题 (b/332898040)。
  • 修复了由于重新组合导致的与测量相关的布局问题 (b/219091179Ibfe8a)。

1.1.0-rc01 版

2024 年 10 月 16 日

androidx.constraintlayout:constraintlayout-compose:1.1.0-rc01androidx.constraintlayout:constraintlayout-compose-android:1.1.0-rc01androidx.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-beta01androidx.constraintlayout:constraintlayout-compose-android:1.1.0-beta01androidx.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-alpha14androidx.constraintlayout:constraintlayout-compose-android:1.1.0-alpha14androidx.constraintlayout:constraintlayout-core:1.1.0-alpha14。1.1.0-alpha14 版本包含 这些提交

API 变更

  • 现在通过伴生对象分别提供标志,并且可以使用 or 运算符组合它们。(I9df53
  • 简化了 createRowcreateColumn 辅助函数。改进了 createGrid 参数名称和文档,以增强清晰度。(Iebc92
  • 简化了 ConstraintLayout 中的 animateChanges API,只需一个非空 AnimationSpecInvalidationStrategy 中的 onIncomingConstraints 现在是一个常规 lambda 表达式。fixedWidthRate 重命名为 shouldInvalidateOnFixedWith,高度变量也是如此。(Ie59cdb/332898040b/336370035
  • NestedScroll 源拖动和抛掷正被 UserInputSideEffect 替换,以适应这些源的扩展定义,这些定义现在包括动画(副作用)和鼠标滚轮和键盘(用户输入)。(I40579)

1.1.0-alpha13 版本

2023 年 10 月 4 日

发布了 androidx.constraintlayout:constraintlayout-compose:1.1.0-alpha13androidx.constraintlayout:constraintlayout-compose-android:1.1.0-alpha13androidx.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-alpha12androidx.constraintlayout:constraintlayout-compose-android:1.1.0-alpha12androidx.constraintlayout:constraintlayout-core:1.1.0-alpha121.1.0-alpha12 版本包含这些提交。

API 变更

  • 向 Transition DSL 添加了 LayoutScopeMarker。(If54ce

1.1.0-alpha11 版本

2023 年 7 月 26 日

已发布 androidx.constraintlayout:constraintlayout-compose:1.1.0-alpha11androidx.constraintlayout:constraintlayout-compose-android:1.1.0-alpha11androidx.constraintlayout:constraintlayout-core:1.1.0-alpha111.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-alpha10androidx.constraintlayout:constraintlayout-compose-android:1.1.0-alpha10androidx.constraintlayout:constraintlayout-core:1.1.0-alpha101.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. 将 paddingLeftpaddingRight 分别更改为 paddingStartpaddingEnd,以及 2. 将 gridSpansgridSkip 的格式更新为 Span 和 Skip 对象的数组,使其结构更清晰。(Idd1eb

1.1.0-alpha09 版本

2023 年 3 月 22 日

已发布 androidx.constraintlayout:constraintlayout-compose:1.1.0-alpha09androidx.constraintlayout:constraintlayout-core:1.1.0-alpha091.1.0-alpha09 版本包含这些提交。

API 变更

  • Modifier.intermediateLayout 现在不需要显式的 LookaheadScopeintermediateLayout 中的测量块使用 IntermediateMeasureScope 作为接收器,它提供了方便的 CoroutineScopeLookaheadScopeMeasureScope
  • LookaheadLayout 已被 LookaheadScope 替换,它不再是布局。这允许 LookaheadScope 中的子内容由父级的 MeasurePolicy 直接控制。(Ibe2e5
  • Easing.Cubic() 现在可以接受超调参数。(I2d826

1.1.0-alpha08 版本

2023 年 3 月 8 日

已发布 androidx.constraintlayout:constraintlayout-compose:1.1.0-alpha08androidx.constraintlayout:constraintlayout-core:1.1.0-alpha081.1.0-alpha08 版本包含这些提交。

新功能

  • 添加了 Lint 检查,建议在典型模式可能导致不可预测的行为的情况下使用 Dimension.percent(1f)LayoutReference.withChainParams()。(I62eb0I03060

API 变更

  • 为 Compose 中的 Grid 辅助函数启用了 ReverseSpanDirectionSpansOrderFirst 标志。
    1. ReverseSpanDirection:反转跨度/跳过的宽度和高度规范。
    2. 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-alpha07androidx.constraintlayout:constraintlayout-core:1.1.0-alpha071.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-alpha06androidx.constraintlayout:constraintlayout-core:1.1.0-alpha061.1.0-alpha06 版本包含这些提交。

新功能

  • 添加了新的 Apis,可以使用 JSON 表示法启用 Compose 中的 Grid 辅助函数,这允许将可组合项放置在二维网格中。(I968ad

API 变更

  • 添加了对弧形向上和弧形向下模式 Arc.AboveArc.Below 的支持,方向无关的弧形模式到 MotionLayout (I184a9)
  • 现在可以将基线锚点约束到顶部/底部锚点,反之亦然。(I54628
  • MotionLayoutScope#motionProperties(包括派生项)重命名为 MotionLayoutScope#customProperties。这是为了与设置自定义属性时保持一致。(Ib34c9
  • 现在可以在 ConstraintSetMotionScene 中创建多个引用:val (box, text, button) = createRefsFor("box", "text","button")。使用 constrain(box, button, text) 对多个元素应用约束。在 ConstrainScope 中,您现在可以使用 Dp.asDimension 直观地设置固定尺寸:width = 10.dp.asDimension。(I021ecIa0960)
  • MotionScene()Transition() 方法现在是非 Composable 函数。这些函数的对象(包括 ConstraintSet)现在应该可以彼此正确比较。animateChanges = trueConstraintLayout 中现在可以只使用一个 ConstraintSet 引用,只要其任何属性在重新组合时发生更改。(I7d22e)

错误修复

  • 修复了当更改辅助元素时,ConstraintLayout 总是触发不必要的额外重新组合的问题。(Id83adb/222093277)
  • 修复了在 ConstraintLayoutMotionLayout 中使用 Intrinsics 时的行为。(I487aeb/220527863)
  • 修复了内容更改时无法重新测量的问题。(Ibfe8ab/219091179)

1.1.0-alpha05 版本

2022 年 12 月 7 日

androidx.constraintlayout:constraintlayout-compose:1.1.0-alpha05androidx.constraintlayout:constraintlayout-core:1.1.0-alpha05 已发布。1.1.0-alpha05 版本包含这些提交。

新功能

  • 支持 DSL 中的自定义 KeyAttributes (b94e748)
  • ConstrainScope 中的表面偏差属性 (32625d0)
  • 支持链中的自定义参数 (72a2e9e)
  • 为 Compose 中的 MotionLayout 添加宏基准测试 (36f43bc)
  • 有关 Compose 中先前版本更改的更多信息,请参阅wiki 页面

API 变更

  • 翻转 addConstraintSetaddTransition 参数 (152facc)

错误修复

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 版本包含这些提交。

错误修复

  • 修复视图轮播中的内存泄漏问题 (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 提供了 ConstraintLayoutMotionLayout

更多信息,请参阅 GitHub 文章1.0 (Compose) 的新增功能

1.0.0-beta02 版本

2021 年 7 月 30 日

androidx.constraintlayout:constraintlayout-compose:1.0.0-beta02 已发布。

此版本是第二个 Beta 版本。它被认为功能完整,为 Compose 提供了 ConstraintLayoutMotionLayout

更多信息,请参阅 GitHub 文章1.0 (Compose) 的新增功能

1.0.0-beta01 版本

2021 年 7 月 22 日

androidx.constraintlayout:constraintlayout-compose:1.0.0-beta01 已发布。

此版本是第一个 Beta 版本。它被认为功能完整,为 Compose 提供了 ConstraintLayoutMotionLayout

更多信息,请参阅 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。

错误修复

查看已修复问题的列表,请访问 这里