我有一个MainActivity,根据按下的特定按钮启动片段。当我在片段下并按下后退按钮时,应用程序将关闭。我的想法是,当按下后退按钮时,我将显示MainActivity,并显示所有按钮。我在MainActivity中编写了这些代码行:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK)) {
recreate();
}
return super.onKeyDown(keyCode, event);
}
这是一个很好的解决方案吗?它工作得很好,唯一的事情是在片段布局的事务和活动布局之间,有一个不到半秒的黑屏。有没有办法解决它?
答案 0 :(得分:2)
添加片段时,将其添加到backStack。后退将自动恢复片段并显示您的主要活动。
例如:
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(..............);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();