如果用户没有数据,我会显示一个空片段。在 emptyFragment(在 onViewCreated
中)中,我检查某个条件,并有时想用另一个片段替换空片段,因此我调用了相应活动的一个方法来替换该片段。
一些用户(目前仅限三星6.0.1,但我不知道这是否有任何意义)在我执行 executePendingTransactions
的行上遇到崩溃:
IllegalStateException:
Fatal Exception: java.lang.RuntimeException
Unable to resume activity
{....app.activities.MyActivity_}:
java.lang.IllegalStateException: FragmentManager is already executing transactions
这是6.0.1版本中的一个bug吗?还是onViewCreated
不是做这件事的正确位置?
编辑
这是否可能是一种解决方案?
if (addToBackStack) {
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, contentFragment, name).addToBackStack(name).commitAllowingStateLoss();
getSupportFragmentManager().executePendingTransactions();
} else {
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, contentFragment, name).commitNow();
}