默认情况下如何在不加载片段的情况下使用导航图?

How to use the Navigation Graph without loading a fragment by default?

我需要使用导航组件并且已经设置好了。导航图需要一个 startDestination,它在创建时默认加载该片段。但是,我有一个片段,我只想在现有屏幕中触发事件后显示。在我准备导航到片段容器之前,如何才能将片段容器留空?

在您的 xml 文件中将您的容器声明为空导航主机

     <fragment
            android:id="@+id/container"
            android:name="androidx.navigation.fragment.NavHostFragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>

然后在您的 activity 中您可以编程设置图表

        val navHost = NavHostFragment()
        fragmentManager.beginTransaction()
               .replace(R.id.container, navHost)
               .commit()
        val graph = navHost.navController.navInflater.inflate(R.navigation.my_navigation)
        graph.startDestination = R.id.my_fragment
        navHost.navController.graph = graph

你可以看看这个link