此时再通过嵌套导航图创建出 ViewModel,便可以在相关界面中共享数据了。...想要创建嵌套导航图,您需要选中对应流程相关的界面,点击鼠标右键,并选择 Nested Graph → New Graph: △ 创建嵌套导航图的截图 注意嵌套导航图在 XML 文件中的 id,在这里是...您无法导航至嵌套导航图中包含的某个特定界面;当您导航至一个嵌套导航图时,打开的只会是其中的开始界面 (startDestination)。...这种特性使得嵌套导航图适合用于封装特定流程的界面组合,比如前面提到过的登录和支付流程。...详细了解更多,请参阅: 主题演讲: Jetpack Navigation 的主题演讲 v.youku.com/v_show/id_X… 官方文档: 以编程方式与导航组件交互 developer.android.google.cn
Jetpack Compose 的出现让我们看到了新的可能性:声明式UI让UI和业务逻辑的绑定很简洁,让页面导航更顺畅。...2.6 导航实现 要实现页面之间的跳转,我们使用 Jetpack Navigation 组件。...3.2 页面间的参数传递 在多个页面之间传递数据是导航中的常见需求。Jetpack Navigation 提供了通过路由传递参数的机制,但与传统的 Intent 或 Bundle 方式不同。...相比于 XML 布局文件,Compose 的布局代码更加简洁,但也更依赖于对编程语言的熟练使用。...四、学习笔记 4.1 掌握Jetpack Compose的基础 在项目开发初期,首先需要学习 Jetpack Compose 的基本语法和使用方式。
这意味着我们正在整理剩余的相关 API 需求以准备通过测试版、RC 版和稳定版。...exitTransition: 指定当您通过导航至另一个目的地的方式离开该目的地时执行的动画。...popExitTransition: 指定当该目的地在以弹出返回栈的方式离开屏幕时执行的动画。默认为 exitTransition。...如果您只想修改某个子图的默认值 (例如,您的登录子图中的页面总是使用横向滑动动画),您也可以在嵌套图级别设置动画: navigation( startDestination = "ask_username...——这样一来,我们进入登录子图和离开登录子图的过渡动画将使用默认值 (或者您在更高一级设置的任何过渡动画)。
消除样板代码: Jetpack 可以管理各种繁琐的后台任务、导航和生命周期管理等。 减少不一致: Jetpack 的组件库可在各种 Android 版本和设备中以一致的方式运作,助您降低复杂性。...compose * 使用描述界面形状和数据依赖项的可组合函数,以编程方式定义界面。 databinding * 使用声明性格式将布局中的界面组件绑定到应用中的数据源。...Paging 3 — 增量加载和显示数据 Paging 3 是一个分页库,可帮助您以增量方式加载和显示小块数据。...导航 navigation添加了对动态功能模块的支持,允许您根据用户需要下载应用程序的各个部分,从而显着减少应用程序的初始下载大小。...提高了相机应用的可靠性,以确保 API 在各种设备上的最佳行为。
这一改变可以为未来与 Kotlin 相关的改进打下基础,同时又与之前使用 Java 编程语言编写的版本二进制兼容。...定义应用内导航模型 Navigation 库是用于在应用中的目的地之间进行移动的框架。...这里我们所关注的是应用启动的优化,但您 // 也可以进行导航和滚动浏览您最重要的界面。...新版本添加了一些用于支持先进用例的功能,包括支持可下载字体、惰性布局及嵌套滚动互操作性。更多信息请参阅文章: 一起看 I/O | Jetpack Compose 中的新特性。...最初的版本针对可折叠设备的用例,包括查询影响内容显示方式的物理属性。
但近年来,Jetpack Compose 的出现彻底改变了我们构建界面的方式。这两者在开发方式、状态管理、布局处理和性能优化等方面都有明显的区别。...它采用声明式编程的方式,你只需要专注于描述“界面应该是什么样子”,而不需要手动更新视图。UI 会根据状态的变化自动重新绘制。开发界面很直观,只需要改变状态,Compose 会自动处理 UI 更新。...虽然这种方式已经非常成熟,但在处理复杂嵌套布局时,代码容易变得工作量大,而且维护真的很不方便。...Jetpack Compose:初期有点陌生,但提升。 如果你习惯了传统的 View 系统,Jetpack Compose 可能一开始会很不习惯,特别是它的声明式 UI 编程风格。...虽然 MDC 强调了传统的 View 机制,但 Jetpack Compose 的优势在于其声明式编程和自动化的状态管理,适合现代应用开发。
参考简答:Navigation组件是Jetpack中用于处理应用内导航的强大工具。...出发点: 这个问题涉及到Android应用中的数据响应式编程,考察面试者对LiveData和RxJava的理解,以及在实际应用中的合理选择。...参考简答: LiveData和Observable都是用于实现响应式编程的工具,但有一些关键区别: 生命周期感知: LiveData是生命周期感知的,它会在观察者(通常是UI组件)的生命周期内自动启动和停止...在高级任务调度中,我们可以: 自定义Worker: 实现Worker类以执行具体任务,并通过Constraints来定义任务的触发条件,如网络状态、电量等。...与Jetpack集成: Hilt与其他Jetpack组件无缝集成,使得在使用其他Jetpack库时能够更加方便地进行依赖注入。
一、项目背景 Material 3 是 Google 的最新 UI 框架,以声明式 UI 构建方式取代了传统的 XML 布局,很大提升了编程效率,减少了许多繁琐的代码。...2.5 效果图 2.6完整代码 package com.nim.nimlogin import android.os.Bundle import androidx.activity.ComponentActivity...3.3 声明式导航与组件解耦 • 难点:在 Compose 中,声明式导航和传统的 Fragment 和 Activity 导航有很大区别,特别是在状态的保留和恢复。...我值得分享经验: 声明式编程的优势:Compose 通过声明式编程减少了很多冗余代码,所有 UI 逻辑都和状态紧密绑定,开发起来更直观。...五、总结和展望 通过本篇文章的实践,我体验到了 Jetpack Compose 的强大好处是Jetpack Compose声明式编程带来的直观、简化的 UI 构建、灵活的状态管理,以及 Material
>>>> 导读 美国当地时间2018年5月8日,Google I/O大会上发布了 Android Jetpack 。...这次的Android Jetpack推出了五个新组件,它们分别是:Navigation(导航组件)、Paging(分页组件)、WorkManager(处理类似后台任务组件)、Slices(切片)、Android...>>>> 传递数据 您可以通过两种方式在目标之间传递数据:使用Bundle对象或使用safeargs Gradle插件以类型安全的方式传递数据。...TextView tv = view.findViewById(R.id.textViewAmount); tv.setText(getArguments().getString("amount")); 2、以类型安全的方式在目标之间传递数据...,我们需要在目标的Activity中重写onSupportNavigateUp,以确保导航器能够正确的回退栈。
作者 | 罗燕珊 近日,谷歌安卓团队发布 Jetpack Compose 1.2 版本,该版本提供了开发者所需要的更多 API,以支持更高级的用例。...例如可下载字体、Lazy grids、窗口插图、嵌套滚动互操作以及更多工具支持,还有针对平板电脑和 Chrome 操作系统的改进。...Jetpack Compose 是官方推荐的为手机、平板和可折叠设备开发新安卓应用的框架。...还有嵌套滚动支持和新的鼠标事件,以及各种错误修复。 安卓开发有很多方式,包括使用 Dart 语言的跨平台框架 Flutter,或其他方法,如 React Native。...每日优鲜回应清退解散;国内 Go 语言爱好者发起新编程语言;微信安装包 11 年膨胀 575 倍|Q 资讯
为大屏设备做好准备 更大的屏幕正在改变用户与设备互动的方式。您可以一边看笔记一边编辑幻灯片,一边规划晚上的出行计划一边查看餐厅推荐,或者在和朋友聊天时观看视频。...△ 在 Chrome OS 设备上使用 Android 应用的用户通常会配置实体键盘;应用应该支持标准的键盘导航和快捷键,以提供更全面的无障碍使用体验 组件更新 我们更新了 Jetpack 和 Material...我们还引入了锁定模式,允许您控制窗格重叠时的滑动操作 (也支持编程切换)。例如,为了防止用户划进一个空窗格,您可能会让用户必须点击一个列表项来加载该窗格的信息,但允许用户通过划动返回列表。...库 除了更新组件以帮助您扩展 UI 外,我们还提供了 WindowManager Jetpack 库 来帮助您在大屏幕设备上构建更好的体验。...△ 应用应该无缝地适应越来越多的设备配置 WindowManager 还提供了几个便捷的方法,以向后兼容 (从 API 级别 14 开始) 的方式检索当前和最大的 WindowMetrics 信息。
请查看 Paging 3.0 文档 和 Paging 3.0 codelab,以了解更多细节并上手实践。...查询 "body:fruit" 将检索所有在消息正文中带有 "fruit" 一词的文档。...的 Navigation 库是在应用中进行导航的框架,现在提供了对多个后退栈的支持,并简化了目的地位于相同深度的情况,如底部导航栏。...您可以通过 ShortcutManager 一次发送多达 15 个快捷方式,以显示在 Google Assistant 和其他服务中,使它们可用于语音和其他互动。...要实现这一点,您需要用一个 Intent 和一个能力绑定 (capability binding) 来定义一个快捷方式;这个绑定提供了语义上有意义的信息,这将帮助 Google 服务找出将其展示给用户的最佳方式
从一开始,我们就喜欢Combine提供的声明式的、以代码为中心的方法和反应式编程模型。...Swift 包管理器 一些编程语言,尤其是较新的编程语言,内置了包和依赖管理解决方案。...对于编写常规的 Android 应用程序,我们已经表达了对 Jetpack Compose 作为以一种现代方式来构建原生用户界面的偏好。...Jetpack Media3 现如今安卓拥有多个媒体 API:Jetpack Media(也被称为 MediaCompat ),Jetpack Media2 和 ExoPlayer。...通常,我们提倡将授权策略与代码分离开,但 SpiceDB 更进一步,将数据与策略分离并将其以图的形式进行存储,以高效地应答授权信息的查询。
App Startup — 在应用启动时初始化组件 App Startup 开发库提供了一种相当直接且高效的方式,来帮助程序在启动过程中初始化组件。...这个工具可以在正在运行的应用中查看、检索以及修改数据库的内容。...另外,您可以像导航到基础模块一样导航到动态功能模块。除此之外,深层链接现在既支持检索参数,也支持自定义的 action 和 mime 类型。...我们的 CameraX 测试实验室也在不断地针对不同机型进行自动化测试,以最大程度地兼容市面上超过 4 亿台的设备。...Jetpack 的 Security 开发库利用 Android 的 Keystore,以提供基于硬件存储空间和相关操作的安全。
在这篇文章里,我分享一个用 Jetpack Compose、Material3和 Kotlin 语言实现使用Jetpack Compose和Kotlin开发NimWebViewApp的加载和操作的案例。...一、项目背景 本文展示如何使用 Jetpack Compose 中的 AndroidView 加载 WebView,处理页面的加载状态和返回导航操作。...4.2 返回操作的管理 WebView 自带页面导航功能,可以在多个页面之间跳转,通过 BackHandler 检测是否可以返回到上一页面,结合 Compose 的导航功能,确保用户能够正常使用返回键...六、总结 本文展示了如何在 Jetpack Compose 中集成 WebView,处理加载状态和返回导航。...通过 AndroidView,可以把原生控件带入 Compose 中,利用 Compose 编写UI采用了声明式编程方式处理页面逻辑。
https://developer.android.google.cn/paging3 App Startup — 在应用启动时初始化组件 App Startup 开发库提供了一种相当直接且高效的方式...这个工具可以在正在运行的应用中查看、检索以及修改数据库的内容。...另外,您可以像导航到基础模块一样导航到动态功能模块。除此之外,深层链接现在既支持检索参数,也支持自定义的 action 和 mime 类型。...从二月份 CameraX 发布 Beta 版本至今,我们一直致力于提升可靠性,以确保 API 在各种设备上都拥有更好的行为。...Jetpack 的 Security 开发库利用 Android 的 Keystore,以提供基于硬件存储空间和相关操作的安全。
列表 : Compose 的 Lazy 组件为数据 列表 的呈现提供了一种简单扼要且功能强大的方式,而且将模版代码精简到了最少。...新工具 Jetpack Compose 的完全声明式方法从根本上改变了用户界面的开发方式。...为了支持新的工作流程和不同的思维方式,我们正在提供新的工具,专为 Compose 而设计,并在一些现有工具中增加对 Compose 的支持。...为了帮助您和您的团队掌握 Compose,我们准备了大量的学习资源: 教程 - 快速实际体验 Compose,以及了解声明式编程。...文档 - 从 "Compose 编程思想" 、"状态和 Jetpack Compose" 以及 "架构式层级" 这样的基础话题,到核心 API 的使用指南,包括 布局、导航 和 测试,以及针对 开发者工效
Compose 相关的东西,也算是从了解到入了个门,在将近一个月的课后(下班)学习中,输出了 3 篇原理性相关的文章,从文章标题可以看出,我是从原生与 Compose 之间的交互进行探索的: Compose 中嵌套原生...Compose 事件分发(下) 分发触摸点 在看完官方文档的组件和一些优秀的开源项目,输出一个简单的 demo: ApkAnalysis[1] 效果如下: ApkAnalysis.gif 关于我的学习方式...阅读源码时,学会总结:从 Retrofit 一般使用方式入手,通过断点调试,观察源码执行顺序,忽略非重要代码,摸清源码主线实现思路后,再深入探索其中的细节实现。...Compose 优秀博主 RugerMc :Jetpack Compose 博物馆 博物馆 docs[8] 博物馆开源项目[9] Zhujiang:《Jetpack Compose Android全新...UI编程》 作者 Zhujiang 掘金主页[10] Reference [1] ApkAnalysis: https://github.com/MRwangqi/ApkAnalysis [2] goo-yao
开发效率的提升离不开三个重要因素: 编程语言、集成开发环境 (IDE) 以及用户界面 (UI) 框架。我们为大家带来的 Jetpack Compose,目的就是为了让您 (我们也是!)...Jetpack Compose 结合刚刚提到的三点优势应运而生——可大规模构建高质量应用的 API、直观的编程语言以及响应式的编程模型。...可以通过以下两种主要的方式将 Compose 与基于视图的 UI 结合起来: 您可以添加 Compose 元素到现有的 UI,或者创建一个全新的基于 Compose 的屏幕,或者是向现有的 fragment...在开发应用时,您的预览会更新,以帮助您更快地检查变更。...这样您就可以实际体验测试 UI,而无需重新安装整个应用或导航到当前页面。
领取专属 10元无门槛券
手把手带您无忧上云