首页 > 解决方案 > 使用 Jetpack 的 Android 导航组件重新创建的片段

问题描述

我有两个片段(例如,fragmentA 和 fragmentB)。

首先,在 fragmentA 中使用findNavController().navigate(R.id.action_fragmentA_to_fragmentB)导航到 fragmentB。

那么,如果你想回到fragmentA,在fragmentB中。下面有两种方法:

为什么?

标签: androidandroid-jetpackandroid-jetpack-navigation

解决方案


后退按钮不调用片段的 onCreate 的原因是设计使然。用户不会期望返回按钮再次调用 onCreate 或创建您的片段。

例如,想想当您在 Android 上打开 YouTube 应用程序时,您会看到您的主屏幕,其中包含基于您的兴趣的视频。当您在稍微滚动后点击视频,然后在视频中途决定按后退按钮返回时,您希望应用程序返回您点击视频的位置,滚动量与您所做的相同,而不是重新加载整个主页,再次填充新视频并将您重置到屏幕顶部。

同样,应用程序中的后退按钮也应该这样做。但是,如果您希望后退按钮的行为有所不同,android 确实提供了一种方法来做到这一点。参考这个


推荐阅读