gpt4 book ai didi

android - fragment 已添加。支持库

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:40:59 27 4
gpt4 key购买 nike

自从我升级我的应用程序以使用支持 lib rev。 11 并针对 SDK 4.2 进行编译,我收到以下错误

java.lang.IllegalStateException: Fragment already added: i{4079e598 #2 id=0x1020002 i}
at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1159)
at android.support.v4.app.BackStackRecord.popFromBackStack(BackStackRecord.java:729)
at android.support.v4.app.FragmentManagerImpl.popBackStackState(FragmentManager.java:1493)
at android.support.v4.app.FragmentManagerImpl.popBackStackImmediate(FragmentManager.java:477)
at android.support.v4.app.FragmentActivity.onBackPressed(FragmentActivity.java:174)

我在 stackoverflow 上读到了类似的问题。他们中的一些人建议避免使用我没有使用的替换方法。导致回滚崩溃的事务如下所示:

ft.remove(oldFrag).add(newFrag).addToBackStack(null).commit()

其他评论说,如果您使用的 fragment 转换在用户再次按下之前无法足够快地完成,则可能会发生这种情况。由于我确实在给定的 fragment 上使用了过渡动画,这可能就是原因。但是,删除转换不是一个选择,因为这专门发生在运行 2.3.x 的手机上,并且该错误是通过升级到 lib 11 和 sdk 4.2 引入的,我希望谷歌将在下一个版本中修复它.

是否有任何类似的问题,有关是否计划在 4.2.1 中修复或支持 r12 的信息,或建议我可以做些什么来避免错误?

最佳答案

我正在尝试使用我发现的提示解决问题 here

所以我添加了executePendingTransactions()立即执行交易:

ft.remove(oldFrag).add(newFrag).addToBackStack(null).commit()
getFragmentManager().executePendingTransactions();

这应该确保后台堆栈始终处于我希望的干净状态,并且没有我能想到的任何负面缺点。

更新虽然它确实适用于普通手机,但问题仍然存在于一些没有已知 Android 版本号的通用设备上,例如 4.0.1 或类似版本,而是报告一些日期,例如 'Thu Mar 02 2006 00:00:00 GMT+ 0100 (MEZ) ' 作为 Android 版本号,例如:samsung - espressowifixx - GT-P3110 将给定日期报告为 android 版本并产生 fragment 添加异常......仍然很烦人。用户不关心这些东西,因此总是被指责的是已经赤字的开发人员。对于值(value)数十亿美元的公司来说当然没问题,但对于单例开发者来说,只需花时间做一些比编写应用程序更有用的事情;)

关于android - fragment 已添加。支持库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13745787/

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