Compose Material 3 Adaptive
最新更新 | 稳定版 | 发布候选版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2025 年 5 月 20 日 | 1.1.0 | - | - | 1.2.0-alpha06 |
声明依赖项
要添加对 Compose 的依赖项,您必须将 Google Maven 代码库添加到您的项目中。请阅读Google 的 Maven 代码库了解更多信息。
在您的应用或模块的 build.gradle
文件中添加您所需工件的依赖项
Groovy
dependencies { implementation "androidx.compose.material3.adaptive:adaptive:1.2.0-alpha06" implementation "androidx.compose.material3.adaptive:adaptive-layout:1.2.0-alpha06" implementation "androidx.compose.material3.adaptive:adaptive-navigation:1.2.0-alpha06" }
Kotlin
dependencies { implementation("androidx.compose.material3.adaptive:adaptive:1.2.0-alpha06") implementation "androidx.compose.material3.adaptive:adaptive-layout:1.2.0-alpha06" implementation "androidx.compose.material3.adaptive:adaptive-navigation:1.2.0-alpha06" }
有关依赖项的更多信息,请参阅添加构建依赖项。
反馈
您的反馈有助于改进 Jetpack。如果您发现新问题或有改进此库的建议,请告诉我们。在创建新问题之前,请查看此库中的现有问题。您可以通过点击星形按钮来为现有问题投票。
有关更多信息,请参阅问题跟踪器文档。
Compose Material3 Adaptive 版本 1.2
版本 1.2.0-alpha06
2025 年 5 月 20 日
androidx.compose.material3.adaptive:adaptive-*:1.2.0-alpha06
已发布。版本 1.2.0-alpha06 包含这些提交。
新功能
- 默认的窗格脚手架指令计算函数现在支持 L 和 XL 窗口宽度尺寸类别。
API 变更
- 使
Modifier.paneExpansionDraggable
提供默认的无障碍语义,并将相关 API 提升为稳定版。(Idb818) - 支持浮动窗格的拖动调整大小 (Idadd3)
- 支持浮动窗格的遮罩 (I9b091)
版本 1.2.0-alpha05
2025 年 5 月 7 日
androidx.compose.material3.adaptive:adaptive-*:1.2.0-alpha05
已发布。版本 1.2.0-alpha05 包含这些提交。
新功能
- Material3 自适应布局现在支持 Levitated 自适应策略,可以将窗格变成浮动弹出窗口。
API 变更
错误修复
- 修复自适应示例中协程范围的使用问题 (7631016)
版本 1.2.0-alpha04
2025 年 4 月 23 日
androidx.compose.material3.adaptive:adaptive-*:1.2.0-alpha04
已发布。版本 1.2.0-alpha04 包含这些提交。
新功能
- 回流策略现在可用于
ListDetailPaneScaffold
和SupportingPaneScaffold
,它们会在单窗格布局设置下回流相关窗格。
API 变更
错误修复
版本 1.2.0-alpha03
2025 年 4 月 9 日
androidx.compose.material3.adaptive:adaptive-*:1.2.0-alpha03
已发布。版本 1.2.0-alpha03 包含这些提交。
错误修复
- 修复在单窗格布局上错误显示拖动手柄的问题。 (806e443 )
依赖项更新
- 此库现在面向 Kotlin 2.0 语言级别,并需要 KGP 2.0.0 或更高版本。(Idb6b5)
版本 1.2.0-alpha02
2025 年 3 月 26 日
androidx.compose.material3.adaptive:adaptive-*:1.2.0-alpha02
已发布。版本 1.2.0-alpha02 包含这些提交。
版本 1.2.0-alpha01
2025 年 3 月 12 日
androidx.compose.material3.adaptive:adaptive-*:1.2.0-alpha01
已发布。版本 1.2.0-alpha01 包含这些提交。
API 变更
- 引入
PaneScaffoldScope.preferredHeight
修饰符,供开发者提供窗格首选高度,这将应用于我们将引入的新自适应策略。(I957dd, b/220960090) - 将
ComponentOverride
类型重命名为Override
,将ComponentOverrideContext
类型重命名为OverrideScope
。(Id973c) - 重命名一些组件覆盖方法。(I222b3)
Compose Material3 Adaptive 版本 1.1
版本 1.1.0
2025 年 3 月 12 日
androidx.compose.material3.adaptive:adaptive-*:1.1.0
已发布。版本 1.1.0 包含这些提交。
自 1.0.0 版本以来的重要变更
ListDetailPaneScaffold
和SupportingPaneScaffold
现在支持窗格展开功能 - 用户可以拖动以更改双窗格布局的默认窗格分割,开发者也可以通过更改新引入的PaneExpansionState
在运行时更改窗格分割。NavigableListDetailPaneScaffold
和NavigableSupportingPaneScaffold
现已提供默认的预测性返回支持。您还可以使用ThreePaneScaffoldPredictiveBackHandler
为您自己的三窗格脚手架实现提供预测性返回支持。- 您现在可以通过向
AnimatedPane
提供不同的EnterTransition
和ExitTransition
,在窗格切换期间自定义窗格动作。
版本 1.1.0-rc01
2025 年 2 月 26 日
androidx.compose.material3.adaptive:adaptive-*:1.1.0-rc01
已发布。版本 1.1.0-rc01 包含这些提交。
错误修复
- 禁用三窗格脚手架预测性返回缩放 (ab6fd0b)
版本 1.1.0-beta02
2025 年 2 月 12 日
androidx.compose.material3.adaptive:adaptive-*:1.1.0-beta02
已发布。版本 1.1.0-beta02 包含这些提交。
API 变更
- 更改了
isPredictiveBackInProgress
在MutableThreePaneScaffoldState
动画函数中的设置方式,以保持状态一致性。(Idc97f)
错误修复
NavigableListDetailPaneScaffold
和NavigableSupportingPaneScaffold
的默认返回行为已更改为PopUntilScaffoldValueChange
,以与库的其余部分保持一致。(I873f0)- 设置窗格脚手架的正确无障碍遍历顺序。 (67d030)
- 修复窗格内容状态未保存的问题。 (88b0ff)
- 支持替代拖动的无障碍操作。 (28266d)
- 窗格分割更改后立即宣布。 (0c3a80)
版本 1.1.0-beta01
2025 年 1 月 29 日
androidx.compose.material3.adaptive:adaptive-*:1.1.0-beta01
已发布。版本 1.1.0-beta01 包含这些提交。
API 变更
- 引入工厂函数,分别从起始和结束位置创建偏移类型的窗格展开锚点。(I2eb21)
- 密封
PaneMotion
接口并移除其默认过渡方法。(Ifc4c7) - 引入 API 以获取当前锚点并动画到锚点。(Icf95d)
- 引入窗格展开的无障碍 API (Icc669)
- 将
PaneScaffoldParentData.preferredWidth
的类型更改为 DP。(Id98ee)
版本 1.1.0-alpha09
2025 年 1 月 15 日
androidx.compose.material3.adaptive:adaptive-*:1.1.0-alpha09
已发布。版本 1.1.0-alpha09 包含这些提交。
API 变更
- 添加并使用新的实验性注解
ExperimentalMaterial3AdaptiveComponentOverrideApi
。(Id45aa) - 隐藏
ThreePaneScaffoldHorizontalOrder.toLtrOrder
。(I6f8d2) ThreePaneScaffoldPredictiveBackHandler
已公开。(I1a995, b/370543873)- 已向
ThreePaneScaffoldState
添加isPredictiveBackInProgress
属性。(I1a995, b/370543873) - 为
AnimatedPane
创建覆盖机制,以支持为不同外形规格旁加载实现。(Id7622)
错误修复
- 修复当结算方向没有锚点时的问题。 (df8257d)
版本 1.1.0-alpha08
2024 年 12 月 12 日
androidx.compose.material3.adaptive:adaptive-*:1.1.0-alpha08
已发布。版本 1.1.0-alpha08 包含这些提交。
API 变更
- 引入
currentWindowDpSize
函数。(I99125, b/296300441) - 公开
PaneScaffoldParentData
和ThreePaneScaffoldHorizontalOrder.toLtrOrder()
(I2d6b7) - 移除
PaneScaffoldMotionScope
并将其转换为PaneScaffoldTransitionScope
下的一个字段。同时将其重命名为PaneScaffoldMotionDataProvider
,并移除对 PaneMotionData 底层数据结构的访问 - 相反,提供 getter 和循环方法来访问数据。(Id8884) - 为
ThreePaneScaffold
创建覆盖机制,以支持为不同外形规格旁加载实现。(I5280f) - 默认情况下使窗格展开状态为 null (Ia65f8, b/376394520)
版本 1.1.0-alpha07
2024 年 11 月 13 日
androidx.compose.material3.adaptive:adaptive-*:1.1.0-alpha07
已发布。版本 1.1.0-alpha07 包含这些提交。
API 变更
- 移除自适应库中的拖动手柄实现,鼓励人们使用 M3 版本。同时引入一个修饰符,为提供的拖动手柄可组合项提供窗格展开拖动功能。还将
DraggableState
作为实现细节隐藏起来,以便我们以后可以根据需要进行更改。(Ib50cd) - 根据 UXR 反馈,将窗格动作自定义的入口点从脚手架函数移至
AnimatedPane
。(I10f72) - 为窗格展开引入抛掷支持和自定义动画规范。(Ie207d, b/362584341)
错误修复
- 修复取消时预测性返回问题。 (36a3e0a), (b/369899645)
版本 1.1.0-alpha06
2024 年 10 月 30 日
androidx.compose.material3.adaptive:adaptive-*:1.1.0-alpha06
已发布。版本 1.1.0-alpha06 包含这些提交。
API 变更
- 向
PaneScaffoldTransitionScope.motionProgress
添加FloatRange
。(Iac0dd) - 在可导航的脚手架中,将导航器参数的类型更改为泛型类型。(I1da6e)
版本 1.1.0-alpha05
2024 年 10 月 16 日
androidx.compose.material3.adaptive:adaptive-*:1.1.0-alpha05
已发布。版本 1.1.0-alpha05 包含这些提交。
API 变更
- 引入动画规范类,以确保更一致的动作行为和未来的可扩展性。(I2d3cc)
- 提供动作类型并将
PaneMotionData
中的 currentXXXXX 重命名为 originXXXX。(I7c61a)
版本 1.1.0-alpha04
2024 年 10 月 2 日
androidx.compose.material3.adaptive:adaptive-*:1.1.0-alpha04
已发布。版本 1.1.0-alpha04 包含这些提交。
新功能
- 已向
NavigableListDetailPaneScaffold
和NavigableSupportingPaneScaffold
添加预测性返回支持。(I4dc21, b/359616816)
API 变更
- 已将
ThreePaneScaffoldState
添加到ThreePaneScaffoldNavigator
。导航方法已设为suspend
,以支持带动画的导航。已添加seekBack
以支持部分导航状态(例如预测性返回)。(I5a651, b/359616816) - 添加了
MutableThreePaneScaffoldState
来控制脚手架值之间的过渡。现有的ThreePaneScaffoldState
已设为只读。(Idb3c6) - 公开默认窗格动作实现 (I95a7b)
- 启用设置窗格展开状态的初始锚点 (Ie41b3, b/362350560)
错误修复
- 强制拖动手柄的最小触摸目标尺寸为 48x48dp (7ce6635, b/366018217)
- 在配置更改后恢复锚定位置 (3c9fc6b, b/362353672)
版本 1.1.0-alpha03
2024 年 9 月 18 日
androidx.compose.material3.adaptive:adaptive-*:1.1.0-alpha03
已发布。版本 1.1.0-alpha03 包含这些提交。
版本 1.1.0-alpha02
2024 年 9 月 4 日
androidx.compose.material3.adaptive:adaptive-*:1.1.0-alpha02
已发布。版本 1.1.0-alpha02 包含这些提交。
新功能
- 动作自定义 (I0bf9c), (I80e66) 支持开发者在自适应脚手架状态更改期间更改默认动作。开发者可以从一组默认的进入和退出过渡中进行选择,或使用通过新动作范围提供的信息实现纯自定义过渡。
- 实现窗格展开拖动手柄的渐变动画 (46e3c69)
- 使已记住的
PaneExpansionState
可保存 (61ff76f)
API 变更
- 将缺失的窗格展开 API 添加到脚手架中 (Ic5bc0)
ThreePaneScaffoldDestinationItem.content
已重命名为contentKey
。rememberListDetailPaneScaffoldNavigator
和rememberSupportingPaneScaffoldNavigator
的默认类型参数已从Nothing
更改为Any
。(I58749)- 将
ThreePaneScaffoldState
标记为稳定 (I64aec) - 使拖动手柄参数具有作用域 (Ic0aa2)
版本 1.1.0-alpha01
2024 年 8 月 21 日
androidx.compose.material3.adaptive:adaptive-*:1.1.0-alpha01
已发布。版本 1.1.0-alpha01 包含这些提交。
新功能
- 引入自适应脚手架的窗格展开支持。
API 变更
- 公开窗格展开 API (I301d6)
- 引入
ThreePaneScaffoldState
来控制窗格值过渡。添加了接受此状态的ListDetailPaneScaffold
和SupportingPaneScaffold
的重载。(I5db3b) - 引入窗格展开键和键提供者接口 (Id621f)
错误修复
- 修复排除铰链存在时分区计算错误的问题。 (9dfd483)
Compose Material3 Adaptive 版本 1.0
版本 1.0.0
2024 年 9 月 4 日
androidx.compose.material3.adaptive:adaptive-*:1.0.0
已发布。版本 1.0.0 包含这些提交。
1.0.0 版本的主要功能
- 一行代码的 Composable 函数
currentWindowSize()
、collectFoldingFeaturesAsState()
和currentWindowAdaptiveInfo()
,用于获取所需的窗口信息以适应应用,如窗口大小和折叠功能。 ListDetailPaneScaffold
和SupportingPaneScaffold
提供两种 Material3 规范布局,它们将根据不同的窗口配置自动调整。这两种脚手架也完全可自定义,以满足开发者不同的需求。ThreePaneScaffoldNavigator
及其相关记住函数rememberListDetailPaneScaffoldNavigator()
和rememberSupportingPaneScaffoldNavigator()
,提供自适应脚手架内的导航解决方案,可以同时显示多个导航目的地,而普通非自适应世界中通常一次只显示一个目的地。- 更改自适应脚手架状态时,默认内置的 Material3 动画。
版本 1.0.0-rc01
2024 年 8 月 21 日
androidx.compose.material3.adaptive:adaptive-*:1.0.0-rc01
已发布。版本 1.0.0-rc01 包含这些提交。
错误修复
- 修复排除铰链存在时分区计算错误的问题。 (9dfd483)
版本 1.0.0-beta04
2024 年 6 月 26 日
androidx.compose.material3.adaptive:adaptive-*:1.0.0-beta04
已发布。版本 1.0.0-beta04 包含这些提交。
错误修复
- 修复了铰链边界更新时,布局未相应更新的问题。(71e9cf1)
版本 1.0.0-beta03
2024 年 6 月 12 日
androidx.compose.material3.adaptive:adaptive-*:1.0.0-beta03
已发布。版本 1.0.0-beta03 包含这些提交。
错误修复
- 修复了 beta02 中由于依赖项解析不正确导致的崩溃问题。
版本 1.0.0-beta02
2024 年 5 月 29 日
androidx.compose.material3.adaptive:adaptive-*:1.0.0-beta02
已发布。版本 1.0.0-beta02 包含这些提交。
版本 1.0.0-beta01
2024 年 5 月 14 日
androidx.compose.material3.adaptive:adaptive-*:1.0.0-beta01
已发布。版本 1.0.0-beta01 包含这些提交。
版本 1.0.0-alpha12
2024 年 5 月 1 日
androidx.compose.material3.adaptive:adaptive-*:1.0.0-alpha12
已发布。版本 1.0.0-alpha12 包含这些提交。
API 变更
- 向
HingeInfo
添加isFlat
信息 (Ie0516, b/333784198) - 使自适应 API 非实验性 (I1d038)
- 使自适应布局 API 非实验性 (Id23df)
- 将
BackNavigationBehavior
从枚举更改为值类 (Id8757)
错误修复
版本 1.0.0-alpha11
2024 年 4 月 17 日
androidx.compose.material3.adaptive:adaptive-*:1.0.0-alpha11
已发布。版本 1.0.0-alpha11 包含这些提交。
API 变更
- 使范围接口密封。(Iefa57)
- 引入
AnimatedPaneScope
。(I62d73, b/332750742) - 使
AdaptStrategy
密封且稳定。(Ia28b2) - 引入
PaneScaffoldDirective
的复制方法。(I9291f) - 将
ThreePaneScaffoldScope
标记为实验性。(I9d527) - 提供易于使用的支持导航的脚手架 API。(I263f0, b/321010778)
版本 1.0.0-alpha10
2024 年 4 月 3 日
androidx.compose.material3.adaptive:adaptive-*:1.0.0-alpha10
已发布。版本 1.0.0-alpha10 包含这些提交。
API 变更
- 使默认首选宽度自适应且可自定义。(Ic3abc)
- 重命名脚手架指令计算函数。(I10855)
- 从脚手架 API 中移除内边距和内嵌。(I786f8)
- 添加不带泛型类型的导航器记住方法。(I607c3)
版本 1.0.0-alpha09
2024 年 3 月 20 日
androidx.compose.material3.adaptive:adaptive-*:1.0.0-alpha09
已发布。版本 1.0.0-alpha09 包含这些提交。
API 变更
错误修复
- 将间隔符大小包含在窗格动作中。(a3174ca)
版本 1.0.0-alpha08
2024 年 3 月 6 日
androidx.compose.material3.adaptive:adaptive-*:1.0.0-alpha08
已发布。版本 1.0.0-alpha08 包含这些提交。
新功能
- 实现切换窗格时的延迟滑入。(I1a38e)
API 变更
- 移除了
ThreePaneScaffoldState
接口。(I63f23)
版本 1.0.0-alpha07
2024 年 2 月 21 日