父片段的ViewPager带有2个(选项卡)子片段 DownloadsFragment 和 RewardsFragment ,然后添加子元素片段使用下面的代码(2x)转换成父片段,因为我要添加2个子片段:
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.child_content, fragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
然后,当我想向其删除子片段时,而不是检测使用 Fragment Transaction 添加的子片段,而是检测到ViewPager中当前选定的片段。因此,预期的后堆栈将删除后堆栈中的一个子片段,并删除了这两个子片段。
我的日志显示如下:
当前结果
BACKSTACK#1
hasBackStack: WalletFragment -> true
parentFragment: WalletFragment
childFragment: DownloadsFragment
hasBackStack: DownloadsFragment -> false
popFragment: WalletFragment
但预期是:
预期结果
BACKSTACK#1
hasBackStack: WalletFragment -> true
parentFragment: WalletFragment
childFragment: TrailFragment
hasBackStack: TrailFragment -> true
parentFragment: TrailFragment
childFragment: MapFragment
hasBackStack: MapFragment -> false
popFragment: TrailFragment
BACKSTACK#2
hasBackStack: WalletFragment -> true
parentFragment: WalletFragment
childFragment: TrailFragment
hasBackStack: TrailFragment -> false
popFragment: WalletFragment