android-jetpack-compose - 使用 Dialog 作为导航目的地与 jetpack compose
问题描述
一个对话框可以有一个相当复杂的用户界面,更像是一个浮动屏幕,而不是一个典型的 AlertDialog。因此,可能需要让对话框拥有自己的ViewModel
并能够导航到它。当使用 jetpack compose 导航工件时,代码表明在任何时候都只显示一个可组合的NavHost
.
有没有办法导航到覆盖在当前 ui 上的对话框?这与我们如何导航到片段对话框是一致的。谢谢。
解决方案
啊哈。这现在是撰写导航版本 2.4.0-alpha04 中的一项功能
从发行说明
navigation-compose 工件的 NavHost 现在除了可组合的目的地外,还支持对话目的地。这些对话目标将分别显示在可组合对话框中,浮动在当前可组合目标上方。
val navController = rememberNavController()
Scaffold { innerPadding ->
NavHost(navController, "home", Modifier.padding(innerPadding)) {
composable("home") {
// This content fills the area provided to the NavHost
HomeScreen()
}
dialog("detail_dialog") {
// This content will be automatically added to a Dialog() composable
// and appear above the HomeScreen or other composable destinations
DetailDialogContent()
}
}
}
推荐阅读
- node.js - 如何使用 Node.js 通过 AWS SES 发送图像和文件附件?
- python - Pymodbus-read-input-registers CRC 无效,丢弃标头
- python - Python:Pandas groupby 处理大数据的时间太长
- r - 如何编辑校准图的图例?
- java - 适配器的 RecyclerView 问题
- bash - 无法在 Chef Recipe 中运行 bash 资源
- html - 我在 iPhone 上的 h1 标签有什么问题?
- html - Bootstrap 扩展卡导致 Bootstrap 导航栏出现问题
- php - 我想用 Jmeter 测试性能
- node.js - 使用 Node js 创建用于读写的电子表格