Вы можете использовать глобальное действие для создания общего действия, которое могут использовать несколько пунктов назначения. Например, вы можете захотеть, чтобы кнопки в разных местах переходили на один и тот же главный экран приложения.
Глобальное действие представлено в редакторе навигации маленькой стрелкой, указывающей на соответствующий пункт назначения, как показано на рисунке 1.
![](https://developer.android.com/static/topic/libraries/architecture/images/navigation-global-action.png?authuser=8&hl=ru)
Создать глобальное действие
Чтобы создать глобальное действие, выполните следующие действия:
- В редакторе графиков щелкните пункт назначения, чтобы выделить его.
- Щелкните правой кнопкой мыши пункт назначения, чтобы отобразить контекстное меню.
- Выберите «Добавить действие» > «Глобальный» . Стрелка (
) отображается слева от места назначения.
Щелкните вкладку «Текст» , чтобы перейти к текстовому представлению 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 с глобальными действиями см. в разделе Передача данных между пунктами назначения .
Дополнительные ресурсы
Чтобы узнать больше о навигации, обратитесь к следующим дополнительным ресурсам.