我的应用程序有一个活动A,在创建时会加载一个ListFragment - >法。
在选择其中一个项目时,Fa被添加到BackStack中,并被另一个Fa实例替换为另一组数据。
在这个新的Fa实例中选择一个项目,将其放入BackStack并用第三个ListFragment替换它 - > Fb,其布局不同。
Fb旨在以分页方式显示列表,底部有2个按钮,(上一个)和(下一个)。
现在我希望当用户点击下一个按钮时,我应该使用新的Fb实例显示列表的下一页,但我不想将其先前的实例添加到backstack,以便当用户按下后退按钮时在设备上,他应该被带到Fa的第二个实例而不是之前的Fb实例。
我能够实现所有前进遍历位以及上一个和下一个按钮任务,但现在当我按下后退按钮时,Fa的第二个实例显示但是Fb的最后一个实例没有被删除并且可以是在后台看到。
当我按下后退按钮时,如何删除Fb的所有实例并仅显示Fa。
答案 0 :(得分:0)
您可以覆盖“后退”按钮的行为,并将后面的堆栈“弹出”到所需的片段:
@Override
public void onBackPressed() {
fragmentManager.popBackStack(R.id.fragmentA, 0);
}
popBackStack
将消耗所有片段,直到它到达被调用时提供的片段。