如何使用Jetpack导航组件从ViewPager的片段导航到其他片段?

时间:2019-08-02 01:19:12

标签: android android-fragments navigation android-jetpack-navigation

我有一个应用。 它基于Android Jetpack导航组件,并具有带有ViewPager的Tab UI。

例如,有一些片段作为Tab UI。 (不是BottomNavigation用户界面)

  • MainFragment:这将3个Tab片段保存为Tab和ViewPager。
  • DetailsFragment

这2个片段存在于nav_graph.xml上。

和其他人:

  • TabAFragment
  • TabBFragment
  • TabCFragment

这3个片段在nav_graph.xml中不存在

我想知道的是如何从TabXFragment导航到DetailsFragment。

实际上,导航并不困难。 是一样的 我可以只调用“ findNavController.navigate()”来导航。

但是问题是“返回”按钮。

当我触摸DetailsFragment上的“后退”按钮时,它显示了奇怪的屏幕。 只是白屏。 没有TabView。

我希望它显示TabXFragment。 但这不是...

所以我使用Activity而不是DetailsFragment解决了这个问题。 但是我想知道如何处理这个问题...

(对不起,我的英语水平很差)

1 个答案:

答案 0 :(得分:0)

能否请您分享使用Viewpager的方式? 导航组件会在您每次导航回到片段时重新创建您的片段,您需要使用保存的实例状态来保存viewpager位置,然后将其添加到移动到该位置的位置,并添加相应的片段。