Компоненты навигации: меню переключения панели навигации (для зарегистрированных пользователей)

Я использую новую библиотеку компонентов навигации. У меня есть навигационный ящик, который отлично работает.

Если мой пользователь входит в систему, я хочу изменить меню ящика навигации. В частности, я хочу изменить элемент «Вход» на «Выход» из фрагмента.

Все решения, которые я нашел в Интернете, не использовали компоненты навигации. Поэтому они рекомендовали что-то вроде этого:

// Get the navigationView and swap the menu
NavigationView navigationView = view.findViewById(R.id.nav_view);
navigationView.getMenu().clear();
navigationView.inflateMenu(R.menu.activity_main_drawer_logged_in);

Однако в моем случае это не работает (я не могу получить navigationView из фрагмента). Как этого добиться с помощью навигационных компонентов?


person Josip Domazet    schedule 20.10.2019    source источник


Ответы (1)


Вы можете получить доступ к Activity из Fragment через интерфейс:

  1. Создать и интерфейс сказать LoginSuccessListener
  2. Реализует это в вашем Activity
  3. Внутренний фрагмент получает этот слушатель внутри onAttach
  4. Используйте его по мере необходимости для обновления Navigation Menu
person Md. Asaduzzaman    schedule 20.10.2019
comment
Вы только что заставили меня понять, что я могу использовать geAcitvity().findViewById, чтобы получить NavigationView и изменить его. - person Josip Domazet; 20.10.2019