Multiplatform - 使用 Jetpack 组件(ViewModel、Navigation3)
一、概念二、ViewModel2.1 添加依赖[versions] viewModel 2.9.6 [libraries] jetbrains-viewModel { module org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-compose, version.ref viewModel } //可选解决桌面端对于默认调度器 Dispatchers.Main.immediate 可能不可用 kotlinx-coroutinesSwing { module org.jetbrains.kotlinx:kotlinx-coroutines-swing, version.ref kotlinx-coroutines }2.2 使用在非 JVM 平台上无法通过类型反射实例化对象。因此在公共代码中不能直接调用无参数的 viewModel() 函数每次创建 ViewModel 实例时至少需提供一个初始化器作为参数。若仅提供初始化器库会在底层创建默认工厂。但您也可以实现自己的工厂并调用公共 viewModel(...) 函数中更显式的重载版本这与 Jetpack Compose 中的使用方式一致。Composable fun Demo( viewModel: MyViewModel viewModel { MyViewModel() } ) {...}三、Navigation33.1 添加依赖[versions] navigation3 1.0.0-alpha06 navigation3ViewModel 2.10.0-alpha08 navigation3Adaptive 1.3.0-alpha04 navigation3Browser 0.2.0 [libraries] jetbrains-navigation3-ui { module org.jetbrains.androidx.navigation3:navigation3-ui, version.ref navigation3 } jetbrains-navigation3-viewModel { module org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-navigation3, version.ref navigation3ViewModel } //可选自适应布局 jetbrains-navigation3-adaptive { module org.jetbrains.compose.material3.adaptive:adaptive-navigation3, version.ref navigation3Adaptive } //可选回退支持web浏览器历史 jetbrains-navigation3-browser { module com.github.terrakok:navigation3-browser, version.ref compose-multiplatform-navigation3-browser }3.2 使用Serializable private data object RouteA : NavKey Serializable private data class RouteB(val id: String) : NavKey // Creates the required serializing configuration for open polymorphism private val config SavedStateConfiguration { serializersModule SerializersModule { polymorphic(NavKey::class) { subclass(RouteA::class, RouteA.serializer()) subclass(RouteB::class, RouteB.serializer()) } } } Composable fun BasicDslActivity() { // Consumes the serializing configuration val backStack rememberNavBackStack(config, RouteA) NavDisplay( backStack backStack, //... ) }

相关新闻

静态 IP 是什么?静态IP的应用场景有哪些?

静态 IP 是什么?静态IP的应用场景有哪些?

1 静态 IP 是什么 “静态 IP”指在约定租期内长期保持不变的公网出口地址。与“动态 IP”着重“会变”不同,静态 IP 的核心价值是恒定性。这种恒定性让上游系统可以:以IP 白名单方式快速对接第三方 API;在长连接/长登录态下稳定持续传输&…

2026/7/4 23:51:25 阅读更多 →
uni-app—— uni-app 滚轮选择器惯性滚动导致弹框无法关闭的解决方案

uni-app—— uni-app 滚轮选择器惯性滚动导致弹框无法关闭的解决方案

问题背景 在小程序开发中,选择器(Picker)是非常常用的表单组件。用户通过滚动滚轮选择选项,然后点击"完成"确认选择。 然而在实际使用中,我们发现一个诡异的问题:用户快速滑动滚轮后立即点击&quo…

2026/7/5 6:14:06 阅读更多 →
从冷启动到爆品:AliBoost 如何破解推荐系统“富者愈富”困局

从冷启动到爆品:AliBoost 如何破解推荐系统“富者愈富”困局

在大规模推荐系统中,如何让新商品、新内容获得公平成长机会,始终是一项核心挑战。 现实中,大多数平台采用“自然推荐 用户行为反馈”的机制:系统根据历史点击、转化等信号,不断强化对高表现商品的推荐权重。然而&…

2026/7/3 14:27:06 阅读更多 →

最新新闻

告别AI画图翻车!零一AI设计智能体,依托GPT-Image-2重构视觉生产力

告别AI画图翻车!零一AI设计智能体,依托GPT-Image-2重构视觉生产力

做设计、做运营、做内容的人,大概率都踩过AI生图的坑:提示词写满百字,成品构图错乱;图片内嵌文字乱码、笔画残缺;改图反复返工,AI看不懂修改逻辑;生成画面氛围感够了,却没法落地商用…

2026/7/5 6:13:49 阅读更多 →
从 RAG 到 Agent学习笔记

从 RAG 到 Agent学习笔记

大模型(LLM)的能力正在逐渐趋同,真正的技术壁垒正在向 Harness Engineering(驾驭工程)转移。本文将结合近期技术探讨,系统梳理大模型应用开发中的核心工程化技术,涵盖 RAG 结构化输出、约束解码…

2026/7/5 6:11:49 阅读更多 →
文旅伴手礼场景,白酒包装定制如何融合地方特色元素

文旅伴手礼场景,白酒包装定制如何融合地方特色元素

文旅伴手礼视角下的白酒包装定制策略在文旅产业与地方酒文化深度融合的背景下,白酒包装定制已不再局限于简单的瓶身印刷,而是演变为承载地域文化、提升伴手礼附加值的关键载体。对于景区管理机构、地方酒企及文创开发团队而言,如何将地方特色…

2026/7/5 6:09:48 阅读更多 →
如何轻松管理Minecraft游戏体验:PCL启动器完整指南

如何轻松管理Minecraft游戏体验:PCL启动器完整指南

如何轻松管理Minecraft游戏体验:PCL启动器完整指南 【免费下载链接】PCL Minecraft 启动器 Plain Craft Launcher(PCL)。 项目地址: https://gitcode.com/gh_mirrors/pc/PCL 如果你是一位Minecraft玩家,是否曾为复杂的游戏…

2026/7/5 6:07:48 阅读更多 →
WPS-Zotero插件:5分钟搞定跨平台文献引用,科研写作效率翻倍

WPS-Zotero插件:5分钟搞定跨平台文献引用,科研写作效率翻倍

WPS-Zotero插件:5分钟搞定跨平台文献引用,科研写作效率翻倍 【免费下载链接】WPS-Zotero An add-on for WPS Writer to integrate with Zotero. 项目地址: https://gitcode.com/gh_mirrors/wp/WPS-Zotero 还在为Windows和Linux之间切换文献管理软…

2026/7/5 6:05:48 阅读更多 →
StreamCap终极指南:3步掌握开源直播录制工具,轻松录制40+平台直播内容

StreamCap终极指南:3步掌握开源直播录制工具,轻松录制40+平台直播内容

StreamCap终极指南:3步掌握开源直播录制工具,轻松录制40平台直播内容 【免费下载链接】StreamCap Multi-Platform Live Stream Automatic Recording Tool | 多平台直播流自动录制客户端 基于FFmpeg 支持监控/定时/转码 项目地址: https://gitcode.co…

2026/7/5 6:05:48 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻