在我的活动布局中,我有以下NavHostFragment
<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视图实例?
发布于 2018-06-18 02:22:36
我找到了一个解决方案:
//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
发布于 2020-05-14 00:25:35
你可以在你的活动中这样写。
findNavController(R.id.my_nav_host_fragment).setGraph(R.navigation.my_nav_graph)发布于 2020-08-18 15:25:06
当我使用DynamicNavHostFragment时,这两个答案都引起了异常,所以我使用
val navHostFragment: NavHostFragment = supportFragmentManager
.findFragmentById(R.id. my_nav_host_fragment) as NavHostFragment
navHostFragment.findNavController().setGraph(R.navigation. my_nav_graph)https://stackoverflow.com/questions/50898996
复制相似问题