gpt4 book ai didi

android - 在不导致 illegalStateException 的情况下弹出返回堆栈

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:13:26 25 4
gpt4 key购买 nike

我得到了
java.lang.IllegalStateException: 无法在 onSaveInstanceState 之后执行此操作

在我的代码中,我搜索了 statckoverflow,我得到了下面的代码作为解决方案。

现在我没有得到 IllegalStateException 但问题是.. 下面的代码正在清除整个堆栈跟踪。但我只想弹出后台堆栈中的最后一个事务/条目。怎么办??

            if (getSupportFragmentManager().getBackStackEntryCount() > 0) {
getSupportFragmentManager().popBackStack(getSupportFragmentManager().getBackStackEntryAt(0).getId(), FragmentManager.POP_BACK_STACK_INCLUSIVE);
}

如何只弹出后台栈中的最后一个事务/条目??

我如何添加到堆栈的代码:

      fragmentManager.beginTransaction().
setCustomAnimations(R.anim.slide_in_left, R.anim.slide_in_left, R.anim.slide_out_right, R.anim.slide_out_right).
replace(R.id.content_frame, pageFragment, currentItem).
addToBackStack(currentItem).
commit();

最佳答案

弹出最后一个交易条目:

int last = getActivity().getSupportFragmentManager().getBackStackEntryCount() - 1
FragmentManager.BackStackEntry entry = getSupportFragmentManager().getBackStackEntryAt(last);
String tag = entry.getName();
Fragment fragment = getSupportFragmentManager().findFragmentByTag("last"); //get the last fragment

此外,在交易过程中,您必须添加标签..

fragmentTransaction.addToBackStack("last");

您还可以使用 popBackStackImmediate弹出最后一个 fragment :

getSupportFragmentManager().popBackStackImmediate(getSupportFragmentManager().getBackStackEntryAt(last), FragmentManager.POP_BACK_STACK_INCLUSIVE);

使用标签从 BackStack 弹出 fragment :

 getSupportFragmentManager().popBackStack ("last", FragmentManager.POP_BACK_STACK_INCLUSIVE);

关于android - 在不导致 illegalStateException 的情况下弹出返回堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42202500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com