android移除fragment,关于android:如何在不弹出片段的情况下清除fragmentManager的堆栈?...

博客探讨了在Android中如何清除Fragment的后退栈,同时保持当前Fragment处于活动状态。作者希望当用户点击返回按钮时,不回退到之前的Fragment,而是直接关闭活动。他们发现后退栈不是可随意编辑的列表,而是在特定点可以清除或回退到某个事务。文中提到了一些尝试的方法,如popBackStack(),但没有找到完全符合需求的解决方案。
摘要由CSDN通过智能技术生成

简单的问题,但似乎无法回答...

如何清除fragmentManager向后堆栈而不弹出片段?

我这样理解:

后退堆栈条目=使用addToBackStack命令预先保存的事务列表。

例如:"用片段2替换片段1"。

popBackStack =做最后保存的事务反转。

例如:"用片段1替换片段2"。

假设我做了第一个事务:F1-> F2并将此事务添加到堆栈中。现在,当我按返回按钮时,将发生F2-> F1。

好的但是..

我已经改变主意了,我想清理后排。

我希望用户使用F2片段,但是当他/她按下"后退"按钮时,活动应该关闭,就像后退栈为空。

我需要类似的东西:

for(int i=0;i

getFragmentManager().getBackStackEntryAt(i).remove();

}

已编辑

我试图对复杂的情况提出简单的问题,但得到的答案很简单;)

Abhishek Patel的回答很好,但这不是我想要的。仍然是一个很好的答案。

只是澄清一下:

android中的后退堆栈不是完全可编辑的列表,例如:

交易1

交易2

交易3

交易4

我们无法执行"删除交易3"来进行以下操作:

交易1

交易2

交易4

我们无法清除所有后退堆栈,并使最后一个可见片段保持活动状态。

我们可以将堆栈记录删除到特定位置,例如:

"将所有内容删除到事务2"即可获得:

交易1

交易2

在屏幕上,您会看到交易2的效果。

为什么需要这个?

我以为我可以制作一个将成为"主片段"的片段。该主片段将使用一个接口来告诉它现在显示的是老板片段的任何活动,以及之前发生的一切-不再重要。

(F)-片段,(A)-活动

(F)-老兄。我是老板,而且我很明显并且很爱你。请帮我清理您的后备箱,但保留我的交易,这使我到了这里。

(A)-对不起,您应该在交易之前告诉我清除我的后备箱,以便我可以在新的新后备箱上添加您的交易。

stackoverflow.com/questions/6186433/

试试这可能会有所帮助

public void clearBackstack() {

BackStackEntry entry = getSupportFragmentManager().getBackStackEntryAt(

0);

getSupportFragmentManager().popBackStack(entry.getId(),

FragmentManager.POP_BACK_STACK_INCLUSIVE);

getSupportFragmentManager().executePendingTransactions();

}

我已经找到它了,但它并不是我一直在寻找的东西。 我以为backstack就像一个列表,我可以删除我想要的任何行...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值