Навигация на реактивном ранце Android: переход от действия (заставка) к действию

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

Короче говоря, мне нужно создать экран-заставку, он будет выполнять свои функции (инициализация и т. Д.), А затем перейти к потоку регистрации / входа в систему (еще не реализован) или к основному потоку (который использует BottomNavigationView). Итак, я подумал, что проще всего было бы создать SplashscreenActivity, а затем перейти к MainActivity.

Только я не могу понять, как перейти от SplashscreenActivity к MainActivity, потому что findNavController(), который я обычно использую во фрагментах, для действий требуется идентификатор navController, который, я думаю, не имеет большого смысла в данном случае. Возможно ли добиться этого с помощью навигации на реактивном ранце?

Конечно, я всегда могу выбрать старый добрый startActivity(), но правильно ли это? Могу ли я лучше создать SplashscreenFragment и обрабатывать все в MainActivity?


person jack_the_beast    schedule 28.08.2020    source источник
comment
отвечает ли это на ваш вопрос? stackoverflow .com / questions / 61031383 /   -  person Mohammed Alaa    schedule 28.08.2020
comment
@MohammedAlaa не совсем, прежде чем игнорировать активный подход, я хотел бы знать, можно ли его использовать.   -  person jack_the_beast    schedule 28.08.2020
comment
да, я думаю, что это возможно, но если вы используете компонент навигации, они рекомендуют использовать несколько фрагментов одного действия   -  person Mohammed Alaa    schedule 28.08.2020
comment
если вы выберете активный подход, проверьте stackoverflow.com/questions/50452359/   -  person Mohammed Alaa    schedule 28.08.2020


Ответы (1)


Похоже, что компонент навигации позволяет это сделать, но на самом деле он не предназначен для этого.

Таким образом, можно либо переключиться на архитектуру с одним действием, либо сделать это:

ActivityNavigator(this)
                    .createDestination()
                    .setIntent(Intent(this, SecondActivity::class.java))
                    .navigate(null, null) 

но копаясь в том, что делает этот фрагмент, выясняется, что он эквивалентен startActivity(), поэтому в нем нет никакого реального применения.

person jack_the_beast    schedule 31.08.2020