android - 如何使用导航图而不默认加载 fragment ?

标签 android kotlin android-architecture-navigation android-navigation-graph

我需要使用导航组件并已对其进行设置。导航图需要一个 startDestination,它在创建时默认加载该 fragment 。但是,我有一个 fragment ,我只想在现有屏幕内触发事件后显示该 fragment 。在我准备好导航到 fragment 容器之前,如何将 fragment 容器保留为空?

最佳答案

在您的 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

关于android - 如何使用导航图而不默认加载 fragment ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63306379/

相关文章:

android - 如何隐藏底部栏导航。当遵循单一 Activity 设计时?

android - firestore 中日期字段的查询不起作用

android - 导航架构组件 - 新资源对话框没有导航图的导航资源类型

android - 导航组件 - 模拟 Navcontroller 图

java - 来自/proc/meminfo 的总 Ram

android - 无法调用android中的onbackup方法

android - 我可以使用 Android 客户管理器获取 App Engine 的 OAuth 访问 token 吗?

android - 收到错误消息 "Android sdk content loader stuck at 0%"

java - IntelliJ 运行带有 @Ignore 注释的 Kotlin 测试

android - 导航库充气器为数据类抛出 ClassNotFoundException