9

FragmentsActivity根据用户交互动态添加。当我按后退键时,会弹出片段。但是,当我按下第一次添加到堆栈中的片段的返回键时,“活动”显示一个空布局。我希望 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;
}

但这具有阻止后退键功能的效果。任何指向正确方向的指针都值得赞赏。

4

2 回答 2

7

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

于 2012-10-24T03:54:41.403 回答
5

将第二个更改return true;return false;表示您没有处理按键。当后台堆栈为空时,这应该关闭活动,否则保持原样。

于 2012-10-24T03:51:54.900 回答