当我们在android中使用backstack返回上一个片段时,上一个片段正在重新启动

Posted

技术标签:

【中文标题】当我们在android中使用backstack返回上一个片段时,上一个片段正在重新启动【英文标题】:Previous fragment is restarting when we go back to previous fragment using backstack in android 【发布时间】:2020-11-17 11:03:31 【问题描述】:

假设我们有两个片段,我们在第二个片段中,然后如果有人按下后退按钮,那么我们使用 backstack 成功返回到前一个片段(即第一个片段),但问题是前一个片段正在重新启动所有内容。当我们按下返回按钮时,我想显示前一个片段的内容,而不需要重新启动或初始化。提前致谢。

【问题讨论】:

我想你用的是替换而不是添加,看看这个***.com/a/18634392/6429241 好的,我会试试的 我认为你是对的。谢谢 但是当我们使用 add 时,所有片段都会重叠。 将此添加到您的片段 xml android:background="@color/colorWhite" android:clickable="true" 【参考方案1】:

欢迎来到 Android 片段生活!!

正如@Uuu Uuu 所建议的,您需要在添加片段时使用add() 方法。由于每次都添加了一个新片段,因此您将片段重叠。

您只需检查片段是否已经存在,则无需添加新片段。您可以在添加片段时分配一个“标签”。代码如下-

if (fragmentManager.findFragmentByTag("First Fragment") == null)
         fragmentManager.beginTransaction().add(R.id.fragment, new FirstFragment(), "First Fragment").commit();

如果你是android开发新手,请了解fragment/activity生命周期,有一篇精彩文章By Jose Alcérreca

我希望这会有所帮助,祝你编码愉快。

【讨论】:

实际上添加背景颜色对我有用。但是感谢您的帮助。

以上是关于当我们在android中使用backstack返回上一个片段时,上一个片段正在重新启动的主要内容,如果未能解决你的问题,请参考以下文章

在 Android Navigation 组件中使用 backstack 打开不同层次结构中的片段

Android Reorder Fragment Backstack

Android 优雅的让Fragment监听返回键

Android TabLayout ViewPager 不会在 backstack 上膨胀标签片段

Android:片段 backStack

带有嵌套/子片段的 Android Backstack