Навигация Android JetPack: как открыть фрагмент из действия, не связанного с ним?

сценарий :

MainActivity.kt : activity_main.xml содержит my_nav_host_fragment

в mobile_navigation.xml first_frag_dest — это startDestination, а также second_frag_dest с соответствующими классами FirstFragment.kt и SecondFragment.kt.

Я настроил нижнюю навигацию для переключения между двумя фрагментами с помощью компонентов Android Jetpack Navigation.

Когда второй фрагмент открывается в первый раз, если FirbaseUser имеет значение null, запускается действие приветствия, настроенное для GoogleSignInusing Firebase.

В WelcomeActivity.java у меня есть функция updateUI(user: FirebaseUser) для обновления пользовательского интерфейса.

Теперь, какой код я должен написать в функции updateUI, чтобы меня перенаправили обратно ко второму фрагменту.

Подскажите, пожалуйста, как это сделать с помощью компонентов JetPack Navigation.

Примечание. Принципы навигации говорят, что должно существовать только одно действие, но здесь я вынужден использовать действие для GoogleSignIn из-за ограничений Firebase.


comment
Итак, ваша первая активность уже находится на SecondFragment и запускает ваш WelcomeActivity. И вы просто хотите вернуться к SecondFragment?   -  person ianhanniballake    schedule 19.12.2018
comment
@ianhanniballake да, точно.   -  person curiousgeek    schedule 19.12.2018


Ответы (1)


Если вы хотите закрыть WelcomeActivity и вернуться к действию под ним, вызовите метод updateUI finish():

Вызовите это, когда ваша деятельность будет завершена и должна быть закрыта

person ianhanniballake    schedule 19.12.2018
comment
Есть ли способ сделать это с помощью навигации на реактивном ранце? - person curiousgeek; 19.12.2018
comment
Нет, Навигация ориентирована на модель с одним действием и не предусматривает завершение действия. - person ianhanniballake; 19.12.2018
comment
Но в моем случае мне нужно было другое занятие, так что в таком случае мне делать. - person curiousgeek; 19.12.2018
comment
Звоните finish(). - person ianhanniballake; 19.12.2018
comment
@ianhanniballake не будет ли ActivityCompat.finishAfterTransition(..) более подходящим? - person papageorgiouk; 11.01.2019