使用NavController时如何使用newInstance()创建片段?

时间:2020-04-28 15:42:09

标签: android android-navigation

我正在创建一个使用NavController和片段显示每个屏幕的单活动应用。

该应用程序具有主屏幕,并且在导航抽屉中包含其他三个菜单项,因此用户可以在外部浏览器中访问不同的网站。

在我的onCreate()的{​​{1}}方法中,我有:

MainActivity

我创建了一个mDrawerLayout = findViewById(R.id.drawer_layout); NavigationView navigationView = findViewById(R.id.nav_view); // Passing each menu ID as a set of Ids because each menu should be considered as top level destinations. mAppBarConfiguration = new AppBarConfiguration.Builder( R.id.nav_home, R.id.nav_visit_website_1, R.id.nav_visit_website_2, R.id.nav_visit_website_3) .setDrawerLayout(mDrawerLayout) .build(); NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment); NavigationUI.setupActionBarWithNavController(this, navController, mAppBarConfiguration); NavigationUI.setupWithNavController(navigationView, navController); 类,该类具有静态VisitWebsiteFragment方法-打算将其用于三个网站菜单项。

我已经阅读了navigation documentation,但不确定如何使用newInstance(String websiteUrl)创建三个片段实例来拦截/控制NavController。

在导航的某些方面我可能完全不了解。有人可以指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

菜单项的ID为exclude="video/*"nav_visit_website_1nav_visit_website_2

将此代码添加到我的 nav_graph.xml 中可以满足我的需要:

nav_visit_website_3