2

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

4

1 回答 1

1

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

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

然后在您的活动中,您可以以编程方式设置图表

        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

你可以检查这个链接

于 2020-08-08T06:50:38.520 回答