我根据用户互动动态地将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;
}
但这会阻止后退键功能。任何指向正确方向的人都会受到赞赏。
答案 0 :(得分:6)
你在哪里添加你的第一个片段?不要将该事务添加到后台堆栈,它应该按照您希望的方式工作。
答案 1 :(得分:5)
将第二个return true;
更改为return false;
,表示您没有处理按键。这应该在后堆栈为空时关闭活动,并保持原样。