一览
最新更新 | 稳定版 | 候选版本 | Beta 版 | Alpha 版 |
---|---|---|---|---|
2024 年 10 月 16 日 | 1.1.1 | - | - | - |
声明依赖项
要添加对 Glance 的依赖项,您必须将 Google Maven 存储库添加到您的项目中。阅读Google 的 Maven 存储库以获取更多信息。
在应用或模块的 build.gradle
文件中添加所需构件的依赖项
Groovy
dependencies { // For Glance support implementation "androidx.glance:glance:1.1.1" // For AppWidgets support implementation "androidx.glance:glance-appwidget:1.1.1" // 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.1") // For AppWidgets support implementation("androidx.glance:glance-appwidget:1.1.1") // 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.1
2024 年 10 月 16 日
androidx.glance:glance-*:1.1.1
已发布。版本 1.1.1 包含这些提交。
安全修复
- 从此更改开始,androidx 编译时使用 protobuf 4.28.2 以解决CVE-2024-7254。将您对
androidx.glance:glance-appwidget-proto
和androidx.glance:glance-appwidget-external-protobuf
版本 1.1.0 的依赖项升级到 1.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) - 重命名
Viewfinder
的ImplementationMode
枚举以更好地反映底层实现,并为TransformationInfo.sourceRotation
添加固定常量(Ic6149)
错误修复
- 修复了一个导致
ViewGroups
在向后兼容模式下出现渲染问题错误(I8de92)
外部贡献
- 实验性的
SharedTransitionScope
现在是接口而不是类。(Iaf856,b/338415048,b/338414702)
版本 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.runComposition
(I6344c,b/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) - 为 Glance 添加按钮和图标按钮 API(I0fd6f)
- 添加
isLinearProgressIndicator
、isIndeterminateLinearProgressIndicator
、isIndeterminateCircularProgressIndicator
过滤器以匹配进度指示器。此外还包括hasAnyDescendants
过滤器以测试节点在其子层次结构中是否具有与特定匹配器匹配的后代(Ifd426) - 添加断言和过滤器以启用对启动服务/活动或广播的点击操作的测试。还包括测试输入元素是否已选中。(I3041c)
版本 1.0.0
版本 1.0.0-alpha06
2024 年 2 月 7 日
androidx.glance:glance-appwidget-preview:1.0.0-alpha06
和 androidx.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 包含这些提交。
将 Glance 移动到 rc01,准备发布 1.0.0 稳定版。
新功能
- 为操作 lambda 添加关键参数,以实现更稳定的操作调用。
- 添加了为
startActivity
操作提供ActvityOptions
的功能。 - 添加对 Android 14 的支持
API 更改
- 为所有接受 lambda 的元素添加了一个可选的关键参数。(Id96c1,b/282445798)
- 添加对为
actionStartActivity
设置ActivityOptions
捆绑包的支持(I6a08d) - 合并了 d、e、f、g 路径的公共和实验性 API 文件(I03646,b/278769092)
- N/A,API 文件更改只是重新排序方法(I5fa95)
- 添加用于为
GlanceAppWidgetReceiver
请求设置CoroutineContext
的 API(I0a100) - 添加了一个新的 API,用于为
LazyColumn
和LazyVerticalGrid
提供ActivityOptions
,这些选项将用于列表中的所有操作。(Id8d71)
错误修复
版本 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 更改
- 为
Button
、Checkbox
、RadioButton
和Switch
添加了*Defaults
API。它使 Glance 更符合 Jetpack Compose 的模式。(I94828) - 新的 Glance 模板模块(I94459)
- 使
ResourceColorProvider
成为模块内部。重大更改。需要这样做是因为ResourceColorProvider
仅应用于动态主题,以避免某些颜色是动态资源而某些颜色已完全解析的情况。(Ib0db7) - 添加
FontFamily
作为TextStyle
的选项。(Ic19ba,b/274179837) - 更改了
Enum.valueOf
的值参数名称(Ia9b89) - 枚举
valueOf
抛出的异常更多(I818fe) - 更新了
GlanceAppWidget
以使用provideGlance
作为主要入口点。GlanceAppWidget.Content
现已弃用。(I202b5) - 添加了一个选项,用于为图像提供色调颜色(I26192,b/212418562)
- 更多已弃用隐藏函数的返回类型可空性。(Ibf7b0)
- 添加
@JvmDefaultWithCompatibility
注解(I8f206) - 删除未使用的
SingleEntityTemplateData.displayHeader
。(I7f094) - 添加了对使用 lambda 作为回调的支持(Ia0bbd)
- 将
DayNightColorProvider
移动到 glance 模块(I1842c,b/256934779) - 从模板中删除
LocalColorProvider
。模板现在将使用GlanceTheme.colors
(Ic15e2) - 从
Text(style: TextStyle)
中删除了可空性(I7123b,b/237012816) - 将默认文本颜色设置为黑色。删除可空性(I3072c,b/237012816)
- 使动态主题
ColorProviders
成为其自己的对象。使ResourceColorProvider
对模块内部可见。(Id0e2d,b/237012816) - 将 Undefined 类别添加到
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-alpha05
、androidx.glance:glance-appwidget:1.0.0-alpha05
和 androidx.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) - 为
TextBlock
和ImageBlock
添加优先级数字范围。(I73100)
错误修复
- 删除了 Material3 依赖项。(I28d1c)
- 朝着在 glance 模板布局中添加边距和间距的更一致的系统发展。(I29773)
- 修复了阻止最小化版本构建的格式错误的 Proguard 规则。
版本 1.0.0-alpha04
2022 年 8 月 10 日
androidx.glance:glance:1.0.0-alpha04
、androidx.glance:glance-appwidget:1.0.0-alpha04
和 androidx.glance:glance-wear-tiles:1.0.0-alpha04
已发布。版本 1.0.0-alpha04 包含这些提交。
新功能
- 添加了按钮着色功能。
- 添加了
GlanceComposable
注解以进行更好的编译时检查。 - 添加了 Wear 特定的 Glance 功能。
API 更改
- 更新了 Glance Gallery 数据 API 和精简视图。(Ibc7a8)
- 添加了
ButtonColors
用于配置按钮。(Iea88d,b/236305351) - 将
ColorProvider.resolve
重命名为ColorProvider.getColor
(Ic9dfe) - 将
copy()
方法添加到TextStyle
。(I9aef6) - 添加了一个
ColorProviders
类,可将其用作 Glance 主题的一部分。(I848b9,b/237012816) - 将列表模板支持添加到列表样式和折叠视图。(I50cdc)
- 将语义添加到
GlanceModiier
和GlanceCurvedModifier
。(Ifda7e) - 添加
GlanceComposable
注解。(I5dbf0) - 将 Glance 模板移动到主 Glance 项目中。(I9db94)
- 添加
ColorProvider.resolve()
(Ife532,b/214733442) - 一种新方法,用于从现有的
appWidgetId
或配置活动中的 intent 获取GlanceId
(Icb70c,b/230391946) - 添加
GlanceComposable
注解。(I2c21f) - 添加了
GlanceRemoteViews
用于在GlanceAppWidget
外部运行合成。(I18f92) - 删除
ProgressIndicatorDefaults
中的颜色。(I40299) - 将
ActionCallback
的 onRun 方法重命名为 onAction,以与公共 API 保持一致,这是 API 审查反馈的要求。(Icfa57) - 将 glance 模板布局转换为使用映射。(I46bfd)
- 添加
RadioButton
可组合项(I4ecce) - 添加了
GlanceWearTiles
用于组合佩戴瓷砖(Ia9f65) - 将可点击添加到
GlanceCurvedModifier
(Iec2a0) - 将
CurvedRow
实现为一个作用域,并创建一个 DSL 来添加普通可组合项和/或曲线元素。还添加了curvedLine
和curvedSpacer
,它们在 proto 磁贴中转换为ArcLine
和ArcSpacer
(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 包含这些提交。
新功能
- 简化了状态定义,使其默认为 Preferences。
API 更改
- 通过使
PreferencesGlanceStateDefinition
成为默认状态处理来简化状态处理。删除了GlanceAppWidget.updateAppWidgetState
并引入了updateAppWidgetState
,该方法默认使用Preferences
。(I58963) - 添加 Glance TemplateText 类并更新模板设计(I4e146)
- 为自由形式模板添加了轮廓基础结构(If03d6)
- 对
SingleEntityTemplate
布局进行了更新(If925d) - 添加了
LazyVerticalGrid
(I5f442) - 在
SingleEntityTemplate
上使用ColorProvider
(I01ee0) - 更新模板类名称(I3720e)
- 添加了
LinearProgressIndicator
和CircularProgressIndicator
可组合项。(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 包含以下提交。
新功能
此版本包含使用 Compose 运行时构建 Wear 磁贴的 API 集,以及针对“Glanceable”优化的可组合项。
- 通过扩展
GlanceTileService
(一种在可组合的 Content() 函数中创建磁贴的服务)来声明您的 Wear 磁贴服务。 - Wear 磁贴特定的 Glance 可组合项:
CurvedRow
、CurvedText
。 - 通过定义
TimelineMode.SingleEntry
和TimelineMode.TimeBoundEntries
来处理磁贴的不同时间线模式。 LocalTimeInterval
,本地组合指的是特定时间间隔。BorderModifer
是一个GlanceModifier
,用于在元素周围应用边框。
此版本还为 AppWidget Glance 添加了进度指示器。
API 更改
- 添加了
LinearProgressIndicator
和CircularProgressIndicator
可组合项。(Ie116b) - 将
actionStartBroadcastReceiver
更改为actionSendBroadcast
(I7d555) - 在
GlanceAppWidget
的 onDelete 回调中传递 Context (I4c795)
错误修复
- 如果存在但为空,则正确处理 OPTIONS_APPWIDGET_SIZES。(I01f82)
版本 1.0.0-alpha01
2021 年 12 月 15 日
androidx.glance:glance:1.0.0-alpha01
、androidx.glance:glance-appwidget:1.0.0-alpha01
和 androidx.glance:glance-appwidget-proto:1.0.0-alpha01
已发布。 版本 1.0.0-alpha01 包含以下提交。
初始版本中的功能
- Glance 的第一个版本包含构建 AppWidget 的第一组 API,这些 API 使用 Compose 运行时以及针对“Glanceables”优化的一组新的可组合项。
功能
- 使用 GlanceAppWidget 和 GlanceAppWidgetReceiver 声明您的应用小部件。
- 使用初始的 Glance 可组合项集(Box、Row、Column、Text、Button、LazyColumn、Image、Spacer)组合您的 UI。
- 使用 GlanceModifier 方法将修饰符应用于可组合项。
- 使用预定义的 Action 处理用户交互。
- 使用 ActionParameters 为 Action 提供参数。
- 通过定义 SizeMode.Single、SizeMode.Exact 或 SizeMode.Responsive 来处理 不同的尺寸模式。
- 通过提供 GlanceStateDefinition 来持久化 GlanceAppWidget 状态。
- 本地组合,如 LocalContext、LocalState、LocalGlanceId、LocalSize。
- 使用 AndroidRemoteViews 可组合项与您现有的 RemoteViews 进行互操作。