Перехватите обратную навигацию с помощью Android компонента навигации - PullRequest
0 голосов
/ 19 июня 2020

Я пытаюсь перехватить обратную навигацию в приложении Android, чтобы запустить некоторый код перед выходом из текущего фрагмента / действия.

Приложение использует Android Компонент навигации, подключенный к нижняя панель навигации и панель инструментов. На панели инструментов будет отображаться кнопка «Назад», когда стек не пуст.

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

Мне удалось перехватить android кнопку возврата с помощью OnBackPressedCallback, но кнопка возврата на панели инструментов все равно будет закройте фрагмент.

Есть ли способ перехватить оба метода (возврат с кнопки на панели инструментов и с помощью кнопки android назад)?

Спасибо

1 Ответ

1 голос
/ 20 июня 2020

Пробовали ли вы использовать прослушиватель навигации на панели инструментов?

https://developer.android.com/reference/android/widget/Toolbar#setNavigationOnClickListener (android .view.View.OnClickListener)

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

...