当前位置: 首页 > 知识库问答 >
问题:

打开特定片段时清除framgnetBackStack

隆康平
2023-03-14

当我打开一个特定的片段时,我试图清除后台堆栈。假设我有片段Foo和片段Bar,我可以在Mainactive中打开。此外,我可以从Foo或Bar打开其他片段。这是一个简单的方案:

主要活动-Foo-

主要活动-酒吧-

此外,我有一个菜单,所以我可以从任何地方访问片段Foo和Bar:例如,可以从Foo2或Bar3或任何其他片段访问它。问题是,在打开这个片段后,当我输入Foo或Bar时,我想清除backbackback。

主要活动-Foo-

(清除Backback,这样back按钮将关闭应用程序)。

我试图通过这样做来关闭所有片段:

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    FragmentManager fm = getActivity().getSupportFragmentManager();
    for(int i = 0; i < fm.getBackStackEntryCount(); ++i) {
        fm.popBackStack();
    }
}

操作的顺序是:主要活动-Foo-

此外,I'v通过以下方式完成清算:

getSupportFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);

但它也不起作用。

共有1个答案

百里俭
2023-03-14

在打开任何片段之前,您只能在活动中清除反向堆栈。

 类似资料:
  • 我有一个包含FragmentStatePagerAdapter的活动在这个FragmentStatePagerAdapter中有三个片段。或者,当调用适当的getItem()时,它们会被启动。 该活动执行数据密集型任务,完成后发送广播。我已经在FragmentStatePagerAdapter中的每个片段中注册了一个广播接收器。 现在这一切都很好,除了一件事: 当我们滚动到位置2处的片段(位置1和

  • 我知道这个问题似乎重复,但为了我的要求,我已经在网上搜索了很多帖子,但没有一个对我有效。 我的要求 为此,我尝试了以下场景 情景1 使用将通知数据从传输到Launcher/Main活动,并根据bundle数据重定向到特定活动/片段 情景3 通过使用 按照上面的场景,当应用程序打开时,一切工作都很好,但如果我的应用程序关闭了,则意味着它总是重定向到main/launcher活动

  • 如何从堆栈中弹出特定片段,并从片段中删除其他片段?例如,这些是我的片段,我现在在E right know。 A- 想从E回到B,清除C和D。我怎么能做到这一点?

  • 如何在CardView中打开onClick中的片段?我在Cardview中有一个列表,当我单击时希望在另一个片段中显示。这是adapter.class 这是layout.xml 我解决了onClick的问题,现在我的问题是我不能打开另一个片段。如何在myActive中调用我的方法?

  • 在我的应用程序我有导航抽屉,所以我有一个主要活动和Rest是碎片。我的应用程序运行良好。当我按back按钮时,它会重定向到以前的片段。它工作得很好。但我想要的是在成功支付后,我会显示成功支付页面,在此页面上,当用户按back按钮时,我想重定向到HomeFragment,但现在它会重定向到Placeorder片段。

  • 在我的中有5个片段(home、settings、newPost、notifications和profile)。 在中,我有一个,其中包含许多post视图,每个post都包含一个“open”按钮,该按钮应该打开一个。问题是,我只能在类和populateItemRows()方法中使用,所以当我不能使用... RecycerViewAdapter: