Android 如何处理Viewpager嵌套片段中的后退按钮

Android 如何处理Viewpager嵌套片段中的后退按钮,android,tabs,android-viewpager,back-button,fragment-backstack,Android,Tabs,Android Viewpager,Back Button,Fragment Backstack,据我所知,我有一个包含ViewPager的活动,它加载三个片段: 根 根B 根C RootA加载另一个名为FragA的片段 RootB加载另一个名为FragB的片段 RootC加载另一个名为FragC的片段 FragA有一个名为ButtonA的按钮用于加载FragA FragB有一个名为ButtonB的按钮用于加载FragB FragC有一个名为ButtonC的按钮用于加载FragC 我运行我的应用程序,在第一个选项卡中,我按ButtonA。弗拉加将展出。现在我滑动到第二个选项卡,按Butt

据我所知,我有一个包含ViewPager的活动,它加载三个片段:

  • 根B
  • 根C
RootA加载另一个名为FragA的片段

RootB加载另一个名为FragB的片段

RootC加载另一个名为FragC的片段

FragA有一个名为ButtonA的按钮用于加载FragA

FragB有一个名为ButtonB的按钮用于加载FragB

FragC有一个名为ButtonC的按钮用于加载FragC

我运行我的应用程序,在第一个选项卡中,我按ButtonA。弗拉加将展出。现在我滑动到第二个选项卡,按ButtonB并转到FragBB,然后滑动到第三个选项卡,按ButtonC并转到FragCC

之后,我滑动到第二个选项卡,然后再次滑动到第一个选项卡,没有任何单击。然后我按下后退按钮。通过第一次反压关闭FRAGC(将退出反压),通过第二次反压关闭FragBB,通过第三次反压关闭FragAA

但我希望我的应用程序关闭当前选项卡的子项,而不是根据backbackback关闭片段

我的意思是后退按钮应该关闭FragAA,因为我在第一个选项卡中,我按下了第一个选项卡中的后退按钮


我怎么做

看。也许你会发现一些有用的东西…@isabsent:我研究过那篇文章。它有很多有用的信息,但与我的问题无关。你有什么解决方案吗?@user987362我手动检查碎片的可见性。
FragmentTransaction fragTransaction = getFragmentManager().beginTransaction();
fragTransaction.replace(R.id.container, new FragA());
fragTransaction.commit();
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
FragmentTransaction fragTransaction = fragmentManager.beginTransaction();
fragTransaction.replace(R.id.container, new FragAA, "FragAA");
fragTransaction.addToBackStack("FragAA");
fragTransaction.commit();