Привязка другого меню к другому фрагменту с помощью компонента Навигация - PullRequest
0 голосов
/ 03 октября 2018

У меня есть действие с BottomNavigationBar.

По умолчанию я показываю логотип приложения в середине на панели инструментов.

Теперь мне нужно показывать панель поиска на всей панели инструментов, когда выбран один из нижних элементов навигации.,Кроме того, я хочу вернуться к стандартному виду панели инструментов (с логотипом посередине) при выборе любого другого элемента bottomNavigation.

Как я могу сделать это с компонентом Навигация?

Если мне придется использовать ViewSwitcher или ActionMode, вся идея компонента навигации должна быть отброшена, поскольку я могу обработать несколько фрагментов транзакции с помощьюсебя.

Помоги мне здесь.

1 Ответ

0 голосов
/ 03 октября 2018

Для этого есть два подхода:

1) Каждый фрагмент внедряет свою собственную панель инструментов

Этот подход обеспечивает максимальную гибкость в отношении ответственности каждого фрагмента.для, но более подходит, если у вас есть много разных типов фрагментов или вам нужно прокручивать поведение, которое отличается для каждого фрагмента.

2) Используйте OnNavigatedListener для изменения панели инструментов вашей деятельности

NavController позволяет вам присоединять любое количество экземпляров OnNavigatedListener, которые возвращают вас при каждом изменении текущего пункта назначения / элемента.

Это позволяет вам писать кодв вашей деятельности, такой как:

navController.addOnNavigatedListener { navController, destination ->
  if (destination.id == R.id.search_destination) {
    // Update your Toolbar to be a SearchBar
  } else {
    // Reset it back to a standard Toolbar
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...