如何在onBackPress方法中跳过backstack中的特定片段?

时间:2016-02-19 11:35:35

标签: android android-fragments

我的应用程序中有四个主要片段和一个次要片段。 让我们说片段A,B,C,D。 在片段A处有一个ListView。如果用户单击列表项,则会显示另一个片段(子A)。 那么......,如果用户点击 A - > B - > C - > d 即可。 后台将是 D - > C-> B-> A 即可。这很简单。 这是我的问题..,当用户点击片段A的列表项时,转换将是 A - > sub A - > B - > C - > d 即可。但我不希望在backstack上使用 sub A 。我想要的结果是 D - > C - > B - > A 即可。我目前正试图跳过 sub A ,但仍无法找到合适的答案。

1 个答案:

答案 0 :(得分:2)

通过覆盖或任何特定的后退按钮使用此单击

FragmentManager fm = getActivity().getSupportFragmentManager();
fm.popBackStack();

像这样覆盖后退按钮

// 2.0 and above
@Override
public void onBackPressed() {
    moveTaskToBack(true);
}

// Before 2.0
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        moveTaskToBack(true);
        return true;
    }
    return super.onKeyDown(keyCode, event);
}