当我试图在片段的子片段管理器中放入一些东西时,我偶然发现了可怕的Can not perform this action after onSaveInstanceState
异常。
我怎么能正确地知道我不应该这样做?我通过FragmentManager
和Fragment
代码阅读,看不到在片段上调用onSaveInstanceState()
后翻转的任何标记。
当然,我可以做FragmentTransaction.commitAllowStateLoss()
但这是一个肮脏的黑客并且有一个布尔标志,当我覆盖片段的onSaveInstanceState
方法时我切换也是丑陋......
答案 0 :(得分:1)
我用于提交FragmentTransaction
的规则是:
onActivityCreated
isResumed
为true
您可以找到更深入的文章,了解发生的事情here.未获得例外的建议是:
commitAllowingStateLoss()
。