-1

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

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

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

  • 只需按下后退按钮:fragmentAonCreate()将不会被调用
  • findNavController().navigate(R.id.action_fragmentB_to_fragmentA):fragmentAonCreate()将被调用

为什么?

4

1 回答 1

0

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

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

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

于 2019-10-10T06:05:49.350 回答