我有一个MainActivity
,它下面有很多Fragment
。
我设置了返回机制transaction.addToBackStack(null);
这样的功能:
public void switchFragment(Fragment fragment) {
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.mainFrame, fragment, null);
transaction.addToBackStack(null);
transaction.commit();
}
我的问题是当我点击后退按钮到最后时,FrameLayout
是白色的
我尝试添加
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (mainFrame==null)
return super.onKeyDown(keyCode, event);
}
}
它不起作用。当我回拨Fragment
到最后时,如何避免此白屏?任何帮助都会很棒!
答案 0 :(得分:1)
从您的问题中我理解的是,您有一组"destroy" : true,
"aoColumns": [
一个接一个地启动,当您按下后退按钮时,它们会一个接一个地消失。当第一个Fragment
到达并再次单击后退按钮时,它会显示一个白色屏幕。
如果我更正,您可能需要跟踪是否已达到第一个Fragment
,然后完成活动。
在Fragment
中实施onBackPressed
功能。你可能会考虑做这样的事情。
MainActivity
答案 1 :(得分:0)
我接受了@ ReazMushed的建议,并改变了这样:
@Override
public void onBackPressed() {
if (getSupportFragmentManager().getBackStackEntryCount() ==1) {
finish();
}else{
super.onBackPressed()
}
}
白屏问题消失了!