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

从片段中移除片段

郑卜鹰
2023-03-14

我有一个活动,它创建一个片段,然后这个片段创建另一个片段:

getActivity().getSupportFragmentManager().beginTransaction().remove(fragment2.this).commit();

这让我想到活动。是否真的可以删除fragment2并转到fragment1

提前感谢您的时间,我在网上找不到任何合适的信息!

共有1个答案

卢宜然
2023-03-14

@Ahmedabidi对您的问题有很好的洞察力,是的,正确地实现popbackstack可以解决您的问题。但无论如何,我想建议一种不同的方法来处理这类情况。

活动中编写两个公共函数,以便在片段之间切换。

public void switchToFragment1() {
    getSupportFragmentManager().beginTransaction()
        .replace(R.id.fragment_container, new Fragment1()).commit();
}

public void switchToFragment2() {
    getSupportFragmentManager().beginTransaction()
        .replace(R.id.fragment_container, new Fragment2()).commit();
}

现在,从单击fragment1的按钮,您可以通过以下方式启动fragment2

((YourActivity) getActivity()).switchToFragment2();

切换到fragment1时也是如此

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

  • 当我创建时,我需要从另一个活动中删除一个片段,而不是创建它的活动: 然后我可以从片段中访问另一个活动,假设片段中有一个按钮可以打开另一个活动,现在,停留在该活动中我想删除启动该活动的片段,我得到该片段的参考号通过意图。所以我尝试: 但它给了我一个nullPointerException, 03-07 22:42:33.270 30993-30993/河马。rggmiranda。hiposleep

  • 在我的应用程序中,我使用了一个活动和四个片段。在这个应用程序中,我使用了导航组件。我的片段加载顺序是A- 在设备背面的碎片D中,按下按钮,我想从背面移除碎片C,以便碎片B可以打开。有人建议我怎么做吗提前谢谢 这是我的导航图。xml

  • //使用startActivity(intent)也不起作用//无论我做什么,应用程序都会崩溃

  • 我正在尝试编写一个从activity到片段的数据传输,但我正在捕捉“NullPointerException”代码MainActivity: 代码片段: 我知道对空值的保护,但问题是,我确信传递了值,而null不在那里

  • 假设有两个Fragments,X和Y。我在X上添加Y片段。当Y完成它的工作,然后删除,X再次可见。 问题:当Y片段被删除并且X再次可见时,我必须执行一些任务,但不会调用,因为它取决于活动。那么我怎么知道片段是可见的呢?