一览

使用 Jetpack Compose 风格的 API 构建远程界面的布局。
最新更新 稳定版 候选版本 Beta 版 Alpha 版
2024 年 6 月 12 日 1.1.0 - - -

声明依赖项

要添加对 Glance 的依赖项,您必须将 Google Maven 存储库添加到您的项目中。阅读Google 的 Maven 存储库以了解更多信息。

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

Groovy

dependencies {
    // For Glance support
    implementation "androidx.glance:glance:1.1.0"
    // For AppWidgets support
    implementation "androidx.glance:glance-appwidget:1.1.0"

    // For Wear-Tiles support
    implementation "androidx.glance:glance-wear-tiles:1.0.0-alpha05"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.1.0-beta03"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    // For Glance support
    implementation("androidx.glance:glance:1.1.0")
    
    // For AppWidgets support
    implementation("androidx.glance:glance-appwidget:1.1.0")

    // For Wear-Tiles support
    implementation("androidx.glance:glance-wear-tiles:1.0.0-alpha05")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.1.0-beta03"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

有关依赖项的更多信息,请参阅添加构建依赖项

反馈

您的反馈有助于改进 Jetpack。如果您发现新的问题或有改进此库的想法,请告诉我们。在创建新问题之前,请查看此库中现有的问题。您可以通过点击星形按钮为现有问题添加您的投票。

创建新问题

有关更多信息,请参阅问题跟踪器文档

版本 1.1

版本 1.1.0

2024 年 6 月 12 日

androidx.glance:glance-*:1.1.0 已发布。版本 1.1.0 包含这些提交

自 1.0.0 以来的重要更改

  • 将 Glance 移动到 1.1.0 稳定版。

版本 1.1.0-rc01

2024 年 5 月 14 日

androidx.glance:glance-*:1.1.0-rc01 已发布。版本 1.1.0-rc01 包含这些提交

新功能

  • 为 Glance 的 Preview 注释添加了宽度和高度参数。将 1.1.0 移动到候选版本。

API 更改

  • 向 Scaffold 添加可选参数。(If753f
  • 为 Glance @Preview 添加宽度和高度参数。(Ibabe8
  • 删除对 Glance Wear 磁贴预览的支持。(I3850a
  • 添加了用于为 FontStyle 设置自定义权重值的 API。(I7390a
  • 重命名 ViewfinderImplementationMode 枚举以更好地反映底层实现,并为 TransformationInfo.sourceRotation 添加固定常量(Ic6149

错误修复

  • 修复了一个导致在向后兼容模式下 ViewGroups 渲染出现问题的错误(I8de92)。

外部贡献

版本 1.1.0-beta02

2024年4月17日

androidx.glance:glance-*:1.1.0-beta02 已发布。此版本包含先前版本中缺少的源代码 jar 文件。

版本 1.1.0-beta01

2024年4月3日

androidx.glance:glance-*:1.1.0-beta01 已发布。版本 1.1.0-beta01 包含 这些提交

版本 1.1.0-alpha01

2024年2月7日

androidx.glance:glance-*:1.1.0-alpha01 已发布。版本 1.1.0-alpha01 包含这些提交。

新功能

  • Glance 的单元测试库,无需 UI Automator。Glance 代码可以直接进行测试,无需膨胀视图。
  • 更高级别的组件,用于更简单的布局。
  • 新的修饰符和主题选项。
  • 用于从组合中获取 RemoteViews 流的新 API,runComposition

API 更改

  • 向 Glance 主题添加了一个新的 widgetBackground 颜色角色。(Ia2ab8
  • 添加 GlanceAppWidget.runCompositionI6344cb/298066147
  • 添加新的 TopBar 组件(Ibd361
  • clickable 修饰符添加覆盖。(Iacecf
  • 添加了一个用于为按钮着色的新 api。在 1.0 发布之前,这应该是一个实验性功能。(I92523
  • 添加 runGlanceAppWidgetUnitTest,它提供了一个范围来调用 GlanceAppWidgetUnitTest 上的方法,例如 provideComposable 用于提供一个小的隔离的可组合函数进行测试,onNode 用于在提供的内容中查找 Glance 可组合元素。这使您能够为应用程序小部件中的各个可组合函数编写单元测试,以验证在给定某些输入的情况下,该函数是否输出预期的 Glance 可组合元素集。(I2f682
  • 在语义中添加了一个 testTag 修饰符,用于单元测试。(I8f62f
  • 更新 TitleBar - 文本和图标分别可着色。(Ia0a60
  • 添加脚手架组件(I8a736
  • 添加 hasActionRunCallbackClickAction 过滤器和 assertHasActionRunCallbackClickAction 断言以测试 actionRunCallack。此外,还为与操作相关的测试过滤器添加了其他简写变体函数 - hasStartActivityClickAction<activityClass>(..)hasStartServiceAction<receiverClass>(..)hasSendBroadcastAction<receiverClass>(..)。为其 assertHasXXX 对应项添加了类似的变体。(Ieca63
  • 移动未发布的 api。将修饰符从内部更改为公共,但库受限(If2a08
  • 添加 onCompositionError 方法,开发人员可以在发生错误时运行代码(I9b56f
  • 将按钮和图标按钮 api 添加到 glance(I0fd6f
  • 添加 isLinearProgressIndicatorisIndeterminateLinearProgressIndicatorisIndeterminateCircularProgressIndicator 过滤器以匹配进度指示器。此外还包括 hasAnyDescendants 过滤器以测试节点在其子层次结构中是否具有与特定匹配器匹配的后代(Ifd426
  • 添加断言和过滤器以启用对启动服务/活动或广播的点击操作的测试。还包括测试输入元素是否已选中。(I3041c

版本 1.0.0

版本 1.0.0-alpha06

2024年2月7日

androidx.glance:glance-appwidget-preview:1.0.0-alpha06androidx.glance:glance-preview:1.0.0-alpha06 已发布。版本 1.0.0-alpha06 包含这些提交。

新功能

  • 版本更新以遵循主 Glance 模块。

版本 1.0.0

2023年9月6日

androidx.glance:glance-*:1.0.0 已发布。版本 1.0.0 包含这些提交。

1.0.0 的主要功能

  • 将 Glance 移动到稳定版本 1.0.0

版本 1.0.0-rc01

2023年7月26日

androidx.glance:glance-*:1.0.0-rc01 已发布。版本 1.0.0-rc01 包含这些提交。

在 1.0.0 的稳定版本发布过程中,将 Glance 移动到 rc01。

新功能

  • 向操作 lambda 添加关键参数,以实现更稳定的操作调用。
  • 添加了向 startActivity 操作提供 ActvityOptions 的功能。
  • 添加了对 Android 14 的支持

API 更改

  • 为所有接受 lambda 的元素添加了一个可选的关键参数。(Id96c1b/282445798
  • 添加了对为 actionStartActivity 设置 ActivityOptions 捆绑包的支持(I6a08d
  • 合并了 d、e、f、g 路径的公共和实验性 API 文件(I03646b/278769092
  • N/A,API 文件更改只是重新排序方法(I5fa95
  • 添加了用于为 GlanceAppWidgetReceiver 请求设置 CoroutineContext 的 API(I0a100
  • 添加了一个新的 API,为 LazyColumnLazyVerticalGrid 提供 ActivityOptions,这将用于列表中的所有操作。(Id8d71

错误修复

  • N/A,API 文件更改只是重新排序方法(I5fa95
  • Glance 文本组件样式演示(Ie78a4

版本 1.0.0-beta01

2023年5月10日

androidx.glance:glance-*:1.0.0-beta01 已发布。版本 1.0.0-beta01 包含这些提交。

新功能

  • 将库移至 Beta 版。
  • 支持使用 GlanceTheme 进行主题设置,添加了 glance-material 和 glance-material3 模块以支持 Glance 中的 Material 2 和 Material 3 样式主题。
  • 向文本 api 添加了对 FontFamily 的支持。
  • GlanceAppWidget 移至基于 WorkManager 会话的更新机制。现在,Glance 用于 AppWidgets 的用户应重写 GlanceAppWidget.provideGlance,而不是旧的 Content 方法。由于这现在发生在工作线程中,因此现在是加载资源、数据库或网络项目的好地方,而无需单独的工作线程。

API 更改

  • ButtonCheckboxRadioButtonSwitch 添加了 *Defaults API。它使 Glance 更接近 Jetpack Compose 的模式。(I94828
  • 新的 Glance 模板模块(I94459
  • 使 ResourceColorProvider 对模块内部可见。重大更改。需要这样做是因为 ResourceColorProvider 只能用于动态主题设置,以避免某些颜色是动态资源而某些颜色是完全解析的情况。(Ib0db7
  • 添加 FontFamily 作为 TextStyle 的选项。(Ic19bab/274179837
  • 更改了 Enum.valueOf 的值参数名称(Ia9b89
  • 枚举 valueOf 抛出的异常更多(I818fe
  • 更新 GlanceAppWidget 以使用 provideGlance 作为主要入口点。GlanceAppWidget.Content 现已弃用。(I202b5
  • 添加了一个用于为图像提供色调颜色的选项(I26192b/212418562
  • 更多已弃用隐藏函数的返回类型可空性。(Ibf7b0
  • 添加 @JvmDefaultWithCompatibility 注解(I8f206
  • 删除未使用的 SingleEntityTemplateData.displayHeader。(I7f094
  • 添加了对使用 lambda 作为回调的支持(Ia0bbd
  • DayNightColorProvider 移动到 glance 模块(I1842cb/256934779
  • 从模板中删除 LocalColorProvider。模板现在将使用 GlanceTheme.colorsIc15e2
  • Text(style: TextStyle) 中删除可空性(I7123bb/237012816
  • 默认文本颜色为黑色。删除可空性(I3072cb/237012816
  • 使动态主题 ColorProviders 成为其自己的对象。使 ResourceColorProvider 对模块内部可见。(Id0e2db/237012816
  • ImageSize 添加“未定义”类别。(I2fa39
  • 删除已弃用的 GlanceAppWidget.Content 函数(Ib05f6
  • 添加修饰符作为 AndroidRemoteViews 的参数。(I515d4
  • 添加 GlanceAppWidget.compose 以便于单元测试(Ie9b28

错误修复

  • 添加了 Glance 文本字体的演示小部件(I5c3d7
  • 使 AndroidRemoteViews 可以使用 Modifier 进行大小调整。
  • 已解决主题颜色不一致的问题
  • 所有资源现在都添加了前缀以避免冲突

版本 1.0.0-alpha05

2022年10月5日

androidx.glance:glance:1.0.0-alpha05androidx.glance:glance-appwidget:1.0.0-alpha05androidx.glance:glance-wear-tiles:1.0.0-alpha05 已发布。 版本 1.0.0-alpha05 包含以下提交。

新功能

  • requestPinGlanceAppWidget 添加到 GlanceAppWidgetManager,允许应用提示用户将基于 Glance 的小部件添加到主屏幕。 (Ic6e47)
  • ACTION_DEBUG_UPDATE 添加到 GlanceAppWidgetReceiver,允许开发者在已 root 的设备和模拟器上强制其小部件通过 adb 更新。 (I94ae1)

API 更改

  • 移除 Glance 模板中的标题操作按钮,以简化用例。 (Ie4387)
  • 重构了单个实体模板以重用 Block 子系统设计。 (Iecd2c)
  • 重构了 Glance 列表模板以使用 Text/Image/Action Block 设计。 (If0cc1)
  • TextBlockImageBlock 添加优先级数字范围。 (I73100)

错误修复

  • 移除 Material3 依赖项。 (I28d1c)
  • 朝着在 Glance 模板布局中添加边距和间距的更一致的系统迈进。 (I29773)
  • 修复了阻止最小化版本构建的格式错误的 Proguard 规则。

版本 1.0.0-alpha04

2022 年 8 月 10 日

androidx.glance:glance:1.0.0-alpha04androidx.glance:glance-appwidget:1.0.0-alpha04androidx.glance:glance-wear-tiles:1.0.0-alpha04 已发布。 版本 1.0.0-alpha04 包含以下提交。

新功能

  • 添加了按钮着色功能。
  • 添加了 GlanceComposable 注解以进行更好的编译时检查。
  • 添加了 Wear 特定的 Glance 功能。

API 更改

  • 更新了 Glance 图库数据 API 和精简视图。 (Ibc7a8)
  • 添加了 ButtonColors 用于配置按钮。 (Iea88db/236305351)
  • ColorProvider.resolve 重命名为 ColorProvider.getColor (Ic9dfe)
  • TextStyle 添加了 copy() 方法。 (I9aef6)
  • 添加了一个 ColorProviders 类,可将其用作 Glance 主题的一部分。 (I848b9b/237012816)
  • 将列表样式和折叠视图添加到列表模板支持。 (I50cdc)
  • GlanceModiierGlanceCurvedModifier 添加语义。 (Ifda7e)
  • 添加 GlanceComposable 注解。 (I5dbf0)
  • 将 Glance 模板移动到主 Glance 项目中。 (I9db94)
  • 添加 ColorProvider.resolve() (Ife532b/214733442)
  • 一种新方法,用于从现有的 appWidgetId 或配置活动的 Intent 获取 GlanceId (Icb70cb/230391946)
  • 添加 GlanceComposable 注解。 (I2c21f)
  • 添加了 GlanceRemoteViews 用于在 GlanceAppWidget 外运行合成。 (I18f92)
  • 移除 ProgressIndicatorDefaults 中的颜色。 (I40299)
  • ActionCallback 的 onRun 方法重命名为 onAction,以保持与公共 API 的一致性,这是 API 审查反馈的要求。 (Icfa57)
  • 将 Glance 模板布局转换为使用映射 (I46bfd)
  • 添加 RadioButton 可组合项 (I4ecce)
  • 添加了 GlanceWearTiles 用于组合佩戴瓷砖 (Ia9f65)
  • GlanceCurvedModifier 添加了可点击性 (Iec2a0)
  • 实现 CurvedRow 作为范围并创建一个 DSL 来添加普通可组合项和/或曲线元素。还添加了 curvedLinecurvedSpacer,它们在 proto 磁贴中转换为 ArcLineArcSpacer (Ib955b)
  • 更新了核心和 appcompat 中的可空性以匹配 Tiramisu DP2 (I0cbb7)
  • 在 glance-wear-tiles 中添加了对 RuncallbackAction 的支持,目前仅支持没有参数的 RunCallbackAction (Ide64a)

外部贡献

  • 由于 test-coroutines-lib 迁移,更新了 :compose:ui:ui-test api (updateApi) (I3366d)

版本 1.0.0-alpha03

2022 年 2 月 23 日

androidx.glance:glance-*:1.0.0-alpha03 已发布。 版本 1.0.0-alpha03 包含以下提交。

新功能

  • 简化了状态定义以默认使用首选项。

API 更改

  • 通过将 PreferencesGlanceStateDefinition 设为默认状态处理来简化状态处理。已移除 GlanceAppWidget.updateAppWidgetState 并引入了 updateAppWidgetState,该方法默认使用 Preferences。 (I58963)
  • 添加 Glance TemplateText 类并更新模板设计 (I4e146)
  • 为自由形式模板添加了轮廓基础结构 (If03d6)
  • 更新了 SingleEntityTemplate 布局 (If925d)
  • 添加了 LazyVerticalGrid (I5f442)
  • SingleEntityTemplate 上使用 ColorProvider (I01ee0)
  • 更新模板类名称 (I3720e)
  • 添加了 LinearProgressIndicatorCircularProgressIndicator 可组合项。 (Ie116b)

错误修复

  • 初始 Glance 模板实现,定义“单个项目模板”数据和示例模板布局 (I35837)
  • 默认将磁贴内容对齐到中心 (I264be)
  • 修复了 glance-wear-tiles 中 fillMaxSize/Width/Height 的错误 (I0a39f)

版本 1.0.0-alpha02

2022 年 1 月 26 日

androidx.glance:glance-*:1.0.0-alpha02 已发布。 版本 1.0.0-alpha02 包含以下提交。

新功能

此版本包含一组 API,用于使用 Compose 运行时构建 Wear 磁贴,其中包含针对“Glanceable”优化的可组合项。

  • 通过扩展 GlanceTileService(一种在可组合 Content() 函数中创建磁贴的服务)来声明您的佩戴磁贴服务。
  • Wear 磁贴特定的 Glance 可组合项:CurvedRowCurvedText
  • 通过定义 TimelineMode.SingleEntryTimelineMode.TimeBoundEntries 来处理磁贴的不同时间线模式。
  • LocalTimeInterval,本地合成指的是特定时间间隔。
  • BorderModifer 是一个 GlanceModifier,用于在元素周围应用边框。

此版本还为 AppWidget Glance 添加了进度指示器。

API 更改

  • 添加了 LinearProgressIndicatorCircularProgressIndicator 可组合项。 (Ie116b)
  • actionStartBroadcastReceiver 更改为 actionSendBroadcast (I7d555)
  • 在 onDelete 回调中将 Context 传递给 GlanceAppWidget (I4c795)

错误修复

  • 如果存在但为空,则正确处理 OPTIONS_APPWIDGET_SIZES。 (I01f82)

版本 1.0.0-alpha01

2021 年 12 月 15 日

androidx.glance:glance:1.0.0-alpha01androidx.glance:glance-appwidget:1.0.0-alpha01androidx.glance:glance-appwidget-proto:1.0.0-alpha01 已发布。 版本 1.0.0-alpha01 包含以下提交。

初始版本中的功能

  • Glance 的第一个版本包含第一组 API,用于使用 Compose 运行时构建 AppWidget,并提供一组针对“Glanceables”优化的新可组合项。

功能