可能是由于FragmentManager在切换Fragment的过程中出现问题所致,我们可以尝试将FragmentManager改为ChildFragmentManager。
以下是可能的代码示例:
在主Fragment中:
ChildFragment childFragment = new ChildFragment();
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
transaction.replace(R.id.child_fragment_container, childFragment);
transaction.addToBackStack(null);
transaction.commit();
在子Fragment中:
ParentFragment parentFragment = new ParentFragment();
FragmentTransaction transaction = getParentFragmentManager().beginTransaction();
transaction.replace(R.id.parent_fragment_container, parentFragment);
transaction.addToBackStack(null);
transaction.commit();
这种方法在处理具有嵌套Fragment时通常比FragmentManager更好用。注意,如果使用的是androidx.fragment.app.Fragment,则需要使用getChildFragmentManager()和getParentFragmentManager()来代替getFragmentManager()。