Добавьте действие «Вверх»

Пользователям нужен простой способ вернуться на главный экран вашего приложения. Для этого обеспечьте кнопку «Вверх» на панели приложения для всех действий, кроме основного. Когда пользователь нажимает кнопку «Вверх», приложение переходит к родительскому действию.

На этой странице показано, как добавить кнопку «Вверх» на панель приложения с помощью компонента навигации Jetpack. Более подробное объяснение см. в разделе Обновление компонентов пользовательского интерфейса с помощью NavigationUI .

Настройте панель приложения

Настройте панель приложения с помощью AppBarConfiguration . Из AppBarConfiguration вы можете сообщить панели приложений о ваших пунктах назначения верхнего уровня. Если панель навигации настроена, значок меню панели отображается на панели приложений в местах назначения верхнего уровня. Если панель навигации не настроена, кнопка навигации скрыта в пунктах назначения верхнего уровня.

В обоих случаях кнопка «Вверх» отображается на всех остальных пунктах назначения. Нажатие кнопки «Вверх» вызывает navigateUp() .

В следующем примере показано, как настроить панель приложения с помощью AppBarConfiguration :

Котлин

  override fun onCreate(savedInstanceState: Bundle?) {
    ...
    val navController = findNavController(R.id.nav_host_fragment_activity_main)
    
    val appBarConfiguration = AppBarConfiguration(
        setOf(
            R.id.navigation_home, R.id.navigation_dashboard, R.id.navigation_notifications
        )
    )
    binding.myToolbar.setupWithNavController(navController, appBarConfiguration)
  }
  

Ява

  @Override
  protected void onCreate(Bundle savedInstanceState) {
      ...
      NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment_activity_main);

      AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder(
              R.id.navigation_home, R.id.navigation_dashboard, R.id.navigation_notifications)
              .build();
      NavigationUI.setupWithNavController(binding.myToolbar, navController, appBarConfiguration);
  }