使用 jetpack 从 ViewPager2 导航到另一个片段

Nur*_*lov 5 android android-viewpager2 android-jetpack-navigation

我有一个活动,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
Run Code Online (Sandbox Code Playgroud)

亲爱的社区如何处理这样的导航,为什么会抛出异常?

小智 6

您应该使用全球行动。当您进入视图页面时,实际上您处于不同的导航中。因此,您应该将您的行动作为全球行动。您可以通过官方网站查看全球行动:

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

将操作设置为全局后,您可以这样导航;

findNavController().navigate(R.id.action_global_FirstFragment_to_SecondFragment)
Run Code Online (Sandbox Code Playgroud)

注意:如果执行此操作后没有看到全局操作,请重建您的项目。