弹出最后一个片段时处理后退键

Pie*_*rtz 9 android android-fragments

我基于用户交互动态添加Fragments到我的Activity.当我按后退键时,弹出片段.但是,当我按下第一个添加到堆栈的片段的后退键时,"活动"显示空布局.我希望Activity在这一点上调用`finish()'并消失.我试过了:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    super.onKeyDown(keyCode, event);
    if(keyCode == KeyEvent.KEYCODE_BACK){
        if(getFragmentManager().getBackStackEntryCount()==0){
            finish();
            return true;
        }
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

但这会阻止后退键功能.任何指向正确方向的人都会受到赞赏.

Jam*_*ken 6

你在哪里添加你的第一个片段?不要将该事务添加到后台堆栈,它应该按照您希望的方式工作.


323*_*3go 5

将第二个return true;return false;,表明你没有处理的按键.这应该在后堆栈为空时关闭活动,并保持原样.