首页 文章详情

Jetpack Compose:1.1 稳定版正式发布!

Carson带你学习Android | 271 2022-03-16 21:42 0 0 0
UniSMS (合一短信)


此版本新增了功能包括:焦点处理、触摸目标值、ImageVector 缓存,和对 Android 12 拉伸滚动的支持。
Compose 1.1 还让许多之前的实验性 API 过渡到了稳定阶段,并支持新版 Kotlin。


  • 产品路线图
    https://developer.android.google.cn/jetpack/androidx/compose-roadmap

  • Jetpack Compose
    https://developer.android.google.cn/compose

全新稳定功能和 API



图像矢量 (Image vector) 缓存


Compose 1.1 引入了图像矢量 (Image vector) 缓存,带来了巨大的性能改进。我们为 painterResource API 添加了缓存机制,以缓存所有使用给定资源 ID 和主题解析的 ImageVectors 实例。缓存将在配置更改时失效。


触摸目标值


相对于 Compose 1.0,Material 组件将扩展其布局空间来满足 Material 无障碍指南触摸目标值要求。例如,即使您调低 RadioButton 的大小,RadioButton's 触摸目标的尺寸仍将扩展为至少 48x48dp。这将使得 Compose Material 与 Material Design 组件的行为保持一致,以便在混合使用 View 和 Compose 时提供一致的行为。此更改还可确保当您使用 Compose Material 组件创建界面时,能够满足触摸目标无障碍功能的最低要求。


  • 无障碍指南
    https://material.io/design/usability/accessibility.html

  • 触摸目标值
    https://material.io/design/usability/accessibility.html#layout-and-typography


如果您发现此更改破坏了现有的布局逻辑,请将 LocalMinimumTouchTargetEnforcement 设置为 false 来禁用此行为,但此操作可能会降低应用的可用性,因此需要您格外注意,并谨慎使用。

https://developer.android.google.cn/reference/kotlin/androidx/compose/material3/package-summary#LocalMinimumTouchTargetEnforcement()

△ RadioButton 触摸目标更新

左: Compose 1.0,右: Compose 1.1


从实验版到稳定版的 API



一些 API 从实验版过渡到了稳定版。主要包括:

  • 动画相关 API,例如: EnterTransitionExitTransition、一些 AnimatedVisibility API

  • 矢量相关 API: rememberVectorPainterVectorPropertyVectorConfigRenderVectorGroup


  • EnterTransition
    https://developer.android.google.cn/reference/kotlin/androidx/compose/animation/EnterTransition
  • ExitTransition
    https://developer.android.google.cn/reference/kotlin/androidx/compose/animation/ExitTransition
  • AnimatedVisibility
    https://developer.android.google.cn/reference/kotlin/androidx/compose/animation/package-summary#AnimatedVisibility(kotlin.Boolean,androidx.compose.ui.Modifier,androidx.compose.animation.EnterTransition,androidx.compose.animation.ExitTransition,kotlin.String,kotlin.Function1)
  • rememberVectorPainter
    https://developer.android.google.cn/reference/kotlin/androidx/compose/ui/graphics/vector/package-summary#rememberVectorPainter(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,kotlin.Float,kotlin.Float,kotlin.String,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.BlendMode,kotlin.Function2)
  • VectorProperty
    https://developer.android.google.cn/reference/kotlin/androidx/compose/ui/graphics/vector/VectorProperty
  • VectorConfig
    https://developer.android.google.cn/reference/kotlin/androidx/compose/ui/graphics/vector/VectorConfig
  • RenderVectorGroup
    https://developer.android.google.cn/reference/kotlin/androidx/compose/ui/graphics/vector/package-summary#RenderVectorGroup(androidx.compose.ui.graphics.vector.VectorGroup,kotlin.collections.Map)


全新实验版 API



我们一直在为 Compose 添加新功能,包括以下亮点:
  • 您使用 rememberSaveable 的同时,可以保存和恢复 AnimatedContent
  • 您可以使用 Modifier.animateItemPlacement()LazyColumn/LazyRow 项目位置进行动画处理。
  • 您可以使用全新 BringIntoView API 向父级发送请求,以便父级滚动,将项目引入视图。

  • Modifier.animateItemPlacement()
    https://developer.android.google.cn/reference/kotlin/androidx/compose/foundation/lazy/LazyItemScope#(androidx.compose.ui.Modifier).animateItemPlacement(androidx.compose.animation.core.FiniteAnimationSpec)


您可以使用 @OptIn 以试用这些全新的 API,并向我们提供反馈!
https://developer.android.google.cn/reference/kotlin/androidx/annotation/OptIn

注意: 使用 Compose 1.1 需要使用 Kotlin 1.6.10。如需了解更多信息,您可以查看 Compose 与 Kotlin 的兼容性对应关系:
https://developer.android.google.cn/jetpack/androidx/releases/compose-kotlin

想知道未来计划?您可以查看最新路线图,了解我们目前正在评估和开发的功能,比如延迟加载项目动画、可下载的字体、可移动的内容等等!

https://developer.android.google.cn/jetpack/androidx/compose-roadmap


Jetpack Compose 现已推出稳定版本,供大家在生产环境中使用,并且会继续添加您想要的功能。

「Carson每天带你学习一个Android知识点」,点击下方关注;期待您文章的投稿:真诚邀请您来分享

最后福利:学习资料赠送

  • 福利:本人亲自整理的「Android学习资料」
  • 数量:10名
  • 参与方式:「点击文章右下角”在看“并回复截图到公众号,将随机抽取」

    点击就能升职、加薪水!

除了通过触摸进行交互外,大屏幕设备还支持其他交互形式。设备的屏幕尺寸越大,用户就越有可能使用键盘、手写笔、鼠标、游戏手柄或其他外接设备。如果您想提高应用在这些情况下的易用性,可以计划支持其中一些输入方式,如需了解更多详情,请参阅文章:是时候为各式设备适配完善的输入支持了

good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter