【问题标题】:How to skip specific fragment from backstack in onBackPress method?如何在 onBackPress 方法中从 backstack 中跳过特定片段?
【发布时间】:2016-02-19 11:35:34
【问题描述】:

我的应用中有四个主要片段和一个次要片段。 假设片段 A、B、C、D。 Fragment A 处有一个 ListView。如果用户单击列表项,则会显示另一个 Fragment(子 A)。 所以..,如果用户点击A -> B -> C -> D。 backstack 将是 D -> C-> B-> A。这很简单。 这是我的问题..,当用户单击片段 A 处的列表项时,转换将是 A -> sub A -> B -> C -> D。但我不希望 sub A 在 backstack 上。我想要的结果是D -> C -> B -> A。我目前正在尝试跳过 sub A,但仍然找不到合适的答案。

【问题讨论】:

标签: android android-fragments


【解决方案1】:

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

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);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多