Основные действия

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

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

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

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

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

  1. В редакторе графов нажмите на целевую страницу, чтобы выделить ее.
  2. Нажмите правой кнопкой мыши на целевой сервис, чтобы открыть контекстное меню.
  3. Нажмите Добавить действие > Глобальные. Слева от пункта назначения появится стрелка ().
  4. Перейдите на вкладку Text (Текст), чтобы открыть 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() для каждого элемента пользовательского интерфейса, как показано в примере ниже.

Kotlin

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

Java

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

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

Подробнее о том, как использовать Safe Args с глобальными действиями…

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

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

Практические работы

Видео