首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以编程方式设置NavGraph

以编程方式设置NavGraph
EN

Stack Overflow用户
提问于 2018-06-18 01:36:57
回答 3查看 13.5K关注 0票数 15

在我的活动布局中,我有以下NavHostFragment

代码语言:javascript
复制
<fragment
            android:id="@+id/my_nav_host_fragment"
            android:layout_height="match_parent"
            android:layout_width="match_parent"
            android:name="androidx.navigation.fragment.NavHostFragment"
            app:defaultNavHost="true"
            app:navGraph="@navigation/my_nav_graph" />

我的问题是如何以编程方式设置navGraph?如何在NavHostFragment实例中转换my_nav_host_fragment视图实例?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-06-18 02:22:36

我找到了一个解决方案:

代码语言:javascript
复制
//Setup the navGraph for this activity
val myNavHostFragment: NavHostFragment = my_nav_host_fragment as NavHostFragment
val inflater = myNavHostFragment.navController.navInflater
val graph = inflater.inflate(R.navigation.my_nav_graph)
myNavHostFragment.navController.graph = graph

基于:Navigation Architecture Component- Passing argument data to the startDestination

票数 35
EN

Stack Overflow用户

发布于 2020-05-14 00:25:35

你可以在你的活动中这样写。

代码语言:javascript
复制
findNavController(R.id.my_nav_host_fragment).setGraph(R.navigation.my_nav_graph)
票数 5
EN

Stack Overflow用户

发布于 2020-08-18 15:25:06

当我使用DynamicNavHostFragment时,这两个答案都引起了异常,所以我使用

代码语言:javascript
复制
val navHostFragment: NavHostFragment = supportFragmentManager
    .findFragmentById(R.id. my_nav_host_fragment) as NavHostFragment

navHostFragment.findNavController().setGraph(R.navigation. my_nav_graph)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50898996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档