我只有一个活动,FragmentHome包含viewpager2。在viewpager内部有FirstFragment。
当我想从FirstFragment导航到viewpager2中没有的SecondFragment时
它抛出
java.lang.IllegalArgumentException: navigation destination com.example.mymessangerfcm:id/action_FirstFragment_to_SecondFragment is unknown to this NavController
亲爱的社区如何处理这种导航,以及为什么引发异常?
答案 0 :(得分:1)
您应该使用“全局操作”。当您位于viewpager内部时,实际上您处于另一个导航中。因此,您应该将自己的行为设为全球性。您可以从官方网站上查看“全球行动”:
https://developer.android.com/guide/navigation/navigation-global-action
将动作设为全局后,您可以像这样导航;
findNavController().navigate(R.id.action_global_FirstFragment_to_SecondFragment)
注意:如果执行此操作后看不到全局操作,请重新构建项目。
答案 1 :(得分:0)
当我用ViewPager2调用Navigation.findNavController(view)时,出现在IllegalStateException下面。但是,相同的设置可以在旧的ViewPager上正常工作。
java.lang.IllegalStateException: View android.widget.LinearLayout does not have a NavController set