默认情况下如何在不加载片段的情况下使用导航图?
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
我需要使用导航组件并且已经设置好了。导航图需要一个 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