Глобальные действия,Глобальные действия

Вы можете использовать глобальное действие для создания общего действия, которое могут использовать несколько пунктов назначения. Например, вы можете захотеть, чтобы кнопки в разных местах переходили на один и тот же главный экран приложения.

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

Рисунок 1. Глобальное действие, приводящее к вложенному графу.

Создать глобальное действие

Чтобы создать глобальное действие, выполните следующие действия:

  1. В редакторе графиков щелкните пункт назначения, чтобы выделить его.
  2. Щелкните правой кнопкой мыши пункт назначения, чтобы отобразить контекстное меню.
  3. Выберите «Добавить действие» > «Глобальный» . Стрелка ( ) отображается слева от места назначения.
  4. Щелкните вкладку «Текст» , чтобы перейти к текстовому представлению XML. XML-код глобального действия выглядит примерно так:

    <?xml version="1.0" encoding="utf-8"?>
    <navigation xmlns:app="http://schemas.android.com/apk/res-auto"
                xmlns:tools="http://schemas.android.com/tools"
                xmlns:android="http://schemas.android.com/apk/res/android"
                android:id="@+id/main_nav"
                app:startDestination="@id/mainFragment">
    
      ...
    
      <action android:id="@+id/action_global_mainFragment"
              app:destination="@id/mainFragment"/>
    
    </navigation>
    

Используйте глобальное действие

Чтобы использовать глобальное действие в своем коде, передайте идентификатор ресурса глобального действия в метод navigate() для каждого элемента пользовательского интерфейса, как показано в следующем примере:

Котлин

viewTransactionButton.setOnClickListener { view ->
    view.findNavController().navigate(R.id.action_global_mainFragment)
}

Ява

viewTransactionsButton.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View view) {
       Navigation.findNavController(view).navigate(R.id.action_global_mainFragment);
   }
});

Используйте Safe Args с глобальным действием

Информацию об использовании Safe Args с глобальными действиями см. в разделе Передача данных между пунктами назначения .

Дополнительные ресурсы

Чтобы узнать больше о навигации, обратитесь к следующим дополнительным ресурсам.

Кодлабы

Видео