NavController и global actions - не работают при клике на пункты меню
Проблема следующего рода: создал приложение на основе Navigation Drawer. Получил граф переходов. Для каждого фрагмента в графе - назначил Global action, которая описывает анимацию при входе и выходе из фрагмента.
Если вызывать вот так, (например, по клику на кнопку):
Navigation.findNavController(view).navigate(R.id.action_global_nav_devices);
т.е. вызывать action напрямую - то всё чудесно, анимация перехода работает. Но при этом - совершенно не работает анимация переходов при клике на пунктах меню Drawer. Связываются они, ясное дело, штатным образом:
DrawerLayout drawer = 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_status, R.id.nav_sensors, R.id.nav_devices,
R.id.nav_settings, R.id.nav_share, R.id.nav_send)
.setDrawerLayout(drawer)
.build();
navController = Navigation.findNavController(this, R.id.nav_host_fragment);
NavigationUI.setupActionBarWithNavController(this, navController, mAppBarConfiguration);
NavigationUI.setupWithNavController(navigationView, navController);
Подозреваю, что система в этом случае просто не выполняет global action для пункта меню.
Вопрос: как это дело вылечить, и дать понять системе, что при клике на пункт меню - я однозначно хочу выполнить action, привязанный к этому пункту меню?