Переход от ViewPager2 к другому фрагменту с помощью реактивного ранца

У меня одно действие, FragmentHome содержит viewpager2. Внутри viewpager есть FirstFragment.

введите здесь описание изображения

когда я хочу перейти от FirstFragment к SecondFragment, которого нет в viewpager2

введите здесь описание изображения

это бросает

 java.lang.IllegalArgumentException: navigation destination com.example.mymessangerfcm:id/action_FirstFragment_to_SecondFragment is unknown to this NavController

Уважаемое сообщество, как справиться с такой навигацией и почему выдается исключение?


person Nurseyit Tursunkulov    schedule 18.03.2020    source источник


Ответы (2)


вам следует использовать Global Action. Когда вы находитесь внутри окна просмотра, на самом деле вы находитесь в другой навигации. Итак, вы должны сделать свое действие как Global. Вы можете проверить Global Action на официальном сайте:

https://developer.android.com/guide/navigation/navigation-global-action

После создания действия как глобального вы можете перемещаться следующим образом;

findNavController().navigate(R.id.action_global_FirstFragment_to_SecondFragment)

Примечание. Если вы не видите глобальное действие после его выполнения, перестройте проект.

person Abdurrahim Cillioglu    schedule 19.03.2020

Я получил исключение IllegalStateException при вызове Navigation.findNavController (view) с помощью ViewPager2. Однако та же настройка отлично работает со старым ViewPager.

    java.lang.IllegalStateException: View android.widget.LinearLayout does not have a NavController set
person Howard S    schedule 02.04.2020
comment
Каково решение? - person IgorGanapolsky; 13.07.2020