是的,你可以这样做。由于支持库 v26,您可以使用片段构建堆栈而无需大量成本。在您的活动中进行以下操作:
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, new FragmentA())
.addToBackStack("fragmentA")
.setReorderingAllowed(true)
.commit();
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, new FragmentB())
.addToBackStack("fragmentB")
.setReorderingAllowed(true)
.commit();
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, new FragmentC())
.addToBackStack("fragmentC")
.setReorderingAllowed(true)
.commit();
请记住,由于 setReorderingAllowed,在按下 FragmentC 后,FragmentA 和 FragmentB 的行为方式会有所不同。FragmentA 和 FragmentB 入栈后不会调用 onCreateView,只有 FragmentC 会调用 onCreateView。对于 FragmentA 和 FragmentB,只会调用 onCreate。