Compose Material 3 自适应

  
使用 Material 3 自适应库创建自适应界面,这些界面会根据当前的窗口配置(例如窗口大小类别或设备折叠状态)自动调整自身。该库提供了默认的框架实现和必要的构建块可组合项,以便您创建自己的自定义体验。
最近更新时间 稳定版 候选版 Beta 版 Alpha 版
2024 年 12 月 12 日 1.0.0 - - 1.1.0-alpha08

声明依赖项

如需添加 Compose 的依赖项,您必须将 Google Maven 制品库添加到项目中。如需了解详情,请参阅 Google 的 Maven 代码库

在应用或模块的 build.gradle 文件中添加所需工件的依赖项:

Groovy

dependencies {
    implementation "androidx.compose.material3.adaptive:adaptive:1.1.0-alpha02"
    implementation "androidx.compose.material3.adaptive:adaptive-layout:1.1.0-alpha02"
    implementation "androidx.compose.material3.adaptive:adaptive-navigation:1.1.0-alpha02"
}

Kotlin

dependencies {
    implementation("androidx.compose.material3.adaptive:adaptive:1.1.0-alpha02")
    implementation "androidx.compose.material3.adaptive:adaptive-layout:1.1.0-alpha02"
    implementation "androidx.compose.material3.adaptive:adaptive-navigation:1.1.0-alpha02"
}

如需详细了解依赖项,请参阅添加 build 依赖项

反馈

您的反馈将帮助我们改进 Jetpack。如果您发现了新问题,或对此库有任何改进建议,请告诉我们。创建新问题前,请先查看此库中的现有问题。您可以点击星标按钮,为现有问题投票。

创建新问题

如需了解详情,请参阅问题跟踪器文档

Compose Material3 自适应版本 1.1

版本 1.1.0-alpha08

2024 年 12 月 12 日

发布了 androidx.compose.material3.adaptive:adaptive-*:1.1.0-alpha08。版本 1.1.0-alpha08 包含这些提交内容

API 变更

  • 引入了 currentWindowDpSize 函数。(I99125b/296300441
  • 公开了 PaneScaffoldParentDataThreePaneScaffoldHorizontalOrder.toLtrOrder() (I2d6b7)
  • 移除 PaneScaffoldMotionScope,并将其转换为 PaneScaffoldTransitionScope 下的字段。还应将其重命名为 PaneScaffoldMotionDataProvider,并移除对 PaneMotionData 底层数据结构的访问权限,改为提供用于访问数据的 getter 和循环方法。(Id8884)
  • ThreePaneScaffold 创建替换机制,以支持针对不同外形规格的旁加载实现。(I5280f)
  • 默认情况下,将窗格展开状态设为 null(Ia65f8b/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)
  • 引入了对窗格展开的快速滑动支持和自定义动画规范。(Ie207db/362584341

bug 修复

版本 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)
  • 在可导航的 Scaffold 中,将导航器参数的类型更改为泛型类型。(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 包含这些提交内容

新功能

  • NavigableListDetailPaneScaffoldNavigableSupportingPaneScaffold 添加了预测性返回支持。(I4dc21b/359616816

API 变更

  • ThreePaneScaffoldNavigator 添加了 ThreePaneScaffoldState。导航方法已改为 suspend,以支持带动画的导航。添加了 seekBack 以支持部分导航状态(例如预测性返回)。(I5a651b/359616816
  • 添加了 MutableThreePaneScaffoldState,用于控制 Scaffold 值之间的过渡。现有的 ThreePaneScaffoldState 已设为只读。(Idb3c6)
  • 公开了默认窗格动作实现 (I95a7b)
  • 启用设置窗格展开状态的初始锚点(Ie41b3b/362350560

bug 修复

版本 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 已重命名为 contentKeyrememberListDetailPaneScaffoldNavigatorrememberSupportingPaneScaffoldNavigator 的默认类型参数已从 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 包含这些提交内容

新功能

  • 引入了对自适应 Scaffold 的窗格展开功能支持。

API 变更

  • 向公众推出了窗格展开 API (I301d6)
  • 引入了 ThreePaneScaffoldState 来控制窗格值转换。添加了可接受此状态的 ListDetailPaneScaffoldSupportingPaneScaffold 过载。(I5db3b)
  • 引入了窗格展开键和按键提供程序接口 (Id621f)

bug 修复

  • 修复了存在排除的铰链时分区计算有误的问题。(9dfd483)

Compose Material3 自适应版本 1.0

版本 1.0.0

2024 年 9 月 4 日

发布了 androidx.compose.material3.adaptive:adaptive-*:1.0.0。版本 1.0.0 包含这些提交内容

1.0.0 的主要功能

版本 1.0.0-rc01

2024 年 8 月 21 日

发布了 androidx.compose.material3.adaptive:adaptive-*:1.0.0-rc01。版本 1.0.0-rc01 包含这些提交内容

bug 修复

  • 修复了存在排除的铰链时分区计算有误的问题。(9dfd483)

版本 1.0.0-beta04

2024 年 6 月 26 日

发布了 androidx.compose.material3.adaptive:adaptive-*:1.0.0-beta04。版本 1.0.0-beta04 包含这些提交内容

bug 修复

  • 修复了以下问题:当合页边界更新时,布局不会相应更新。(71e9cf1)

版本 1.0.0-beta03

2024 年 6 月 12 日

发布了 androidx.compose.material3.adaptive:adaptive-*:1.0.0-beta03。版本 1.0.0-beta03 包含这些提交内容

bug 修复

  • 修复了 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 信息 (Ie0516b/333784198)
  • 将自适应 API 设为非实验性 API (I1d038)
  • 将自适应布局 API 设为非实验性 API (Id23df)
  • BackNavigationBehavior 从枚举更改为值类 (Id8757)

bug 修复

  • 将过渡分数更改为 lambda (I6f5a9)
  • 修复了 SizeTracker 的初始状态问题 (18326a9)
  • Posture 等式检查中添加合页列表 (6687137)

版本 1.0.0-alpha11

2024 年 4 月 17 日

发布了 androidx.compose.material3.adaptive:adaptive-*:1.0.0-alpha11。版本 1.0.0-alpha11 包含这些提交内容

API 变更

  • 使作用域接口密封。(Iefa57)
  • 引入了 AnimatedPaneScope。(I62d73b/332750742
  • 使 AdaptStrategy 密封且稳定。(Ia28b2)
  • 引入 PaneScaffoldDirective 的复制方法。(I9291f)
  • ThreePaneScaffoldScope 标记成了实验性对象。(I9d527)
  • 提供简单易用的支持导航的框架 API。(I263f0b/321010778

版本 1.0.0-alpha10

2024 年 4 月 3 日

发布了 androidx.compose.material3.adaptive:adaptive-*:1.0.0-alpha10。版本 1.0.0-alpha10 包含这些提交内容

API 变更

  • 使默认首选宽度自适应且可自定义。(Ic3abc)
  • 重命名了框架指令计算函数。(I10855)
  • 从 Scaffold API 中移除了内边距和内嵌。(I786f8)
  • 添加了没有泛型类型的导航器记忆方法。(I607c3)

版本 1.0.0-alpha09

2024 年 3 月 20 日

发布了 androidx.compose.material3.adaptive:adaptive-*:1.0.0-alpha09。版本 1.0.0-alpha09 包含这些提交内容

API 变更

  • ThreePaneScaffoldScope 添加了状态转换字段。(I3d917)
  • 重新排列了框架参数。(I4dff5)
  • 提供 AnimatedPane 修饰符参数的默认值。(I77dd7)

bug 修复

  • 在窗格动作中添加间隔符大小。(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 日