我正在创建一个使用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。
在导航的某些方面我可能完全不了解。有人可以指出我正确的方向吗?
答案 0 :(得分:1)
菜单项的ID为exclude="video/*"
,nav_visit_website_1
和nav_visit_website_2
。
将此代码添加到我的 nav_graph.xml 中可以满足我的需要:
nav_visit_website_3