• Jetpack Compose 1.2 稳定版现已发布!


    05b600287a232d0dcee63d4373ae1fa2.png

    我们持续构建产品路线图,现在已经发布了 Jetpack Compose 的 1.2 版本,是 Android 的现代原生界面工具包。此版本新增功能包括可下载字体、延迟网格、以及针对平板电脑和 ChromeOS 的改进,以及更好的焦点、鼠标和输入处理能力。

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

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

    我们推荐您使用 Compose 为手机、平板电脑和可折叠设备构建全新 Android 应用。我们也同步发布了 Compose for Wear OS 1.0 版,使得 Compose 成为构建 Wear OS 应用的最佳方式。

    • Compose for Wear OS 1.0 版
      https://android-developers.googleblog.com/2022/07/compose-for-wear-os-10-stable.html

    我们时常看到像 Twitter 开发团队这样的开发者使用 Compose 可以更快捷地进行开发:

    "Compose 极大地提高了我们的生产力。编写一个 Composable 函数比创建一个自定义视图更加简单快捷,这也使得我们能更容易地满足设计师的想法。"

    Compose 1.2 版本为手机、平板电脑和可折叠设备上 Compose 带来了许多更新,包括经过实验性检验的全新稳定 API,并支持新版本的 Kotlin。我们已经更新示例、Codelab、Accompanist 开发库和 MDC-Compose 主题适配器,以便和 Compose 1.2 版本搭配使用。

    • Compose 1.2 版本更新示例
      https://github.com/android/compose-samples

    • Compose 1.2 版本 Codelab
      https://developer.android.google.cn/courses/pathways/compose

    • Accompanist 开发库
      https://github.com/google/accompanist

    • MDC-Compose 主题适配器
      https://material-components.github.io/material-components-android-compose-theme-adapter/

    注意: 将 Compose 编译器内容库更新到 1.2 版本需要使用 Kotlin 1.7.0。从该版本开始,编译器版本将与其他 Compose 开发库的版本解耦。您可以阅读文章了解这样做的原因: 

    • 文章: 关于 Jetpack Compose 内容库独立版本控制
      https://android-developers.googleblog.com/2022/06/independent-versioning-of-Jetpack-Compose-libraries.html

    ca564bbcbf22dce81072fabaabed8d79.png

    全新稳定功能和 API

    我们已添加多个稳定功能和 API,主要包括: 

    • API LazyHorizontalGrid 和 LazyVerticalGrid 帮助您在网格中放置项目清单。这些 API 在 Compose 1.1 版本中已经存在,但被标记为 @Experimental。

    • WindowInsets 类提供用于处理设备边衬区的修饰符,例如 windowInsetsPadding、systemBarsPadding 和 windowInsetsTopHeight。此类在很大程度上基于 Accompanist insets 开发库,并可以取代它作为边衬区的首选机制。

    • Modifier.nestedScroll 为嵌套滚动互操作性提供视图。此示例演示了这个新功能。请在手势文档中了解详情。

    • 我们已添加缓和曲线,这有助于高效编写精美动画。您可在动画指南中阅读更多关于如何使用缓和曲线的内容。

    • 我们通过添加 Modifier.pointerHoverIcon、PointerEventType.Scroll 和 PointerEvent.scrollDelta 改进了对鼠标设备的支持。

      • LazyHorizontalGrid
        http://link.gevents.cn/FX2MuW

      • LazyVerticalGrid
        http://link.gevents.cn/w4bR5k

      • WindowInsets
        https://developer.android.google.cn/reference/kotlin/androidx/compose/foundation/layout/WindowInsets

      • systemBarsPadding
        http://link.gevents.cn/72AGuS

      • windowInsetsTopHeight
        http://link.gevents.cn/hgmByj

      • Accompanist insets 开发库
        https://google.github.io/accompanist/insets/

      • Modifier.nestedScroll
        http://link.gevents.cn/TZGjpN

      • Modifier.nestedScroll 示例
        http://link.gevents.cn/KCr8Tw

      • 手势文档
        https://developer.android.google.cn/jetpack/compose/gestures#nested-scrolling-interop

      • 缓和曲线
        https://developer.android.google.cn/reference/kotlin/androidx/compose/animation/core/package-summary#Ease()

      • 动画指南
        https://developer.android.google.cn/jetpack/compose/animation#easing

      • Modifier.pointerHoverIcon
        http://link.gevents.cn/W2u9kz

      • PointerEventType.Scroll
        https://developer.android.google.cn/reference/kotlin/androidx/compose/ui/input/pointer/PointerEventType.Companion#Scroll()

      • PointerEvent.scrollDelta
        https://developer.android.google.cn/reference/kotlin/androidx/compose/ui/input/pointer/PointerInputChange#scrollDelta()

    38cd5aad5c8f98d0189f7f934f17b25a.png

    全新实验性 API

    我们一直在为 Compose 添加新功能。包括以下亮点: 

    • 使用 LazyLayout 创建您的自定义高效可滚动布局。使用 Modifier.overscroll 向可滚动容器添加自定义的滚动效果。

    • 使用 GoogleFont 下载字体。请阅读官方文档了解详情。

    • 添加了许多文本功能,例如允许自定义 includeFontPadding 和行高 (您可以参考文本文档和相关文章)、Brush API (可参考此文章),以及 pluralStringResource。

    • 改进了测试 API。例如,performKeyInput 操作可在测试中模拟键盘输入。新的 testTagsAsResourceId 语义属性可与 UI Automator 集成。

      • LazyLayout
        http://link.gevents.cn/ZjTCs2

      • Modifier.overscroll
        http://link.gevents.cn/2Mf2xp

      • GoogleFont
        https://developer.android.google.cn/reference/kotlin/androidx/compose/ui/text/googlefonts/GoogleFont

      • 官方文档: 下载字体
        https://developer.android.google.cn/jetpack/compose/text#downloadable-fonts

      • 文本文档
        https://developer.android.google.cn/jetpack/compose/text#includefontpadding_and_lineheight_apis

      • 文本功能相关文章
        https://medium.com/androiddevelopers/fixing-font-padding-in-compose-text-768cd232425b

      • Brush API 
        https://developer.android.google.cn/reference/kotlin/androidx/compose/ui/graphics/Brush

      • Brush API 相关文章
        https://medium.com/androiddevelopers/brushing-up-on-compose-text-coloring-84d7d70dd8fa

      • pluralStringResource
        https://developer.android.google.cn/reference/kotlin/androidx/compose/ui/res/package-summary#pluralStringResource(kotlin.Int,kotlin.Int)

      • performKeyInput
        http://link.gevents.cn/RFd8SD

      • testTagsAsResourceId
        http://link.gevents.cn/WTJxJE

    欢迎您使用 @OptIn 试用这些全新 API,并将您的反馈分享给我们!

    • @OptIn
      https://developer.android.google.cn/reference/kotlin/androidx/annotation/OptIn

    • 分享反馈
      https://issuetracker.google.com/issues/new?component=612128

    8e76a88ca351cda3e74878a9ffcf7759.png

    解决的问题

    我们修复了社区提出的许多问题,以下几点值得关注: 

    • 让动画遵循系统定义的 "Animator 时长缩放"。

    • 通过添加 userScrollEnabled 参数,允许禁用滚动延迟布局。

    • 使 TextField 中的返回按钮行为与 EditText 中的行为相同。

      • 系统定义的 "Animator 时长缩放"

        https://issuetracker.google.com/161675988

      • 禁用滚动

        https://issuetracker.google.com/201150093

      • 返回按钮行为

        https://issuetracker.google.com/192433071

    十分感谢大家在我们的问题跟踪页上提交了错误报告和功能请求,进一步帮助我们改进了 Compose 并构建您需要的 API。欢迎您继续向我们提供反馈,帮助我们让 Compose 变得更好!

    • 问题跟踪页
      https://issuetracker.google.com/issues/new?component=612128

    想知道未来计划?您可以查看我们的最新路线图,了解我们目前正在构想和开发的功能,例如用于添加和移除延迟加载项目动画、流程布局、文本编辑改进等等!

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

    Jetpack Compose 会继续添加您想要的功能。我们很高兴地看到,已经有成千上万的应用在生产环境中使用了 Jetpack Compose,许多开发者也分享了如何使用 Jetpack Compose 改善应用开发过程。我们热切期待看到您的下一个杰作!也欢迎您持续关注 "Android 开发者" 微信公众号,及时了解更多开发技术和产品更新等资讯动态。

    • 开发者分享
      https://developer.android.google.cn/jetpack/compose/adopt#what-developers-are-saying

    您可以通过下方二维码或在文章底部私信,向我们提交反馈,分享您喜欢的内容、发现的问题。您的反馈对我们非常重要,感谢您的支持!

    119c3c6e1788a0b83598ad42eb845db5.png

    c50dc366e65b41504d7202d5444b1c55.gif

    推荐阅读

    如页面未加载,请刷新重试

    ad231483e68e86582e79041cbdbabc4b.gif 点击屏末 阅读原文 | 进一步了解 Jetpack Compose 的更多精彩内容


    f96899c12453562d3a4f67f1a55a80d3.png

  • 相关阅读:
    C++ Qt开发:QNetworkAccessManager网络接口组件
    【Sping 源码解析】Spring XML方式准备创建bean
    CDN的基本概念
    半年销售100万辆 关注比亚迪后300万时代
    结构体的基础知识,足够详细
    socket开发步骤及相关API介绍
    第十二天 进阶编程技术
    Linux实验操作一
    java基础之方法的定义与重载(6)
    IOS热门面试题一
  • 原文地址:https://blog.csdn.net/m0_57546986/article/details/126635207