【问题标题】:Jetpack Compose NavHost with FragmentsJetpack 使用 Fragments 编写 NavHost
【发布时间】:2021-01-26 14:00:04
【问题描述】:

是否可以在 compose NavHost 中使用片段目标?我尝试使用 NavGraphBuilder DSL 创建目的地,但出现以下错误:找不到名称为“片段”的导航器。您必须为每种导航类型调用 NavController.addNavigator()。

这是我想要做的:

  NavHost(navController = navController, startDestination = NavScreen.Home.route) {
            composable(NavScreen.Home.route) {
               ...
            }
            
            fragment<TestFragment>(...) {
                ...
            }
  }

【问题讨论】:

    标签: android android-fragments android-architecture-navigation android-navigation android-jetpack-compose


    【解决方案1】:

    在 alpha05 中,我认为撰写导航不能与片段导航互操作。但是您可以将 Fragment 包装在 AndroidView 中,这是与传统 android 互操作的方式。比如:

    @Composable
    fun MyFragDestination() {
        AndroidView(
            viewBlock = { // create fragment },
            updateBlock = { // update fragment with new state }
        }
    }
    

    然后从撰写导航器中调用MyFragDestination

    【讨论】:

      猜你喜欢
      • 2021-10-13
      • 2022-10-06
      • 1970-01-01
      • 2021-10-05
      • 1970-01-01
      • 2022-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多