Я создаю одноактное приложение, которое использует NavController
и фрагменты для отображения каждого экрана.
Приложение имеет домашний экран и содержит три других пункта меню в навигационном ящике, так что пользователь может посещать различные веб-сайты во внешнем браузере.
В методе onCreate()
моего 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
, который имеет stati c newInstance(String websiteUrl)
метод - с намерением использовать его для трех пунктов меню веб-сайта.
Я прочитал навигационную документацию , но я не уверен, как перехватить / контролировать NavController, чтобы создать три экземпляра фрагмента с помощью VisitWebsiteFragment.newInstance(...)
.
. Может быть, некоторые аспекты навигации, которые я полностью пропускаю. Может ли кто-нибудь указать мне правильное направление?