片段回到最后,屏幕是白色的

时间:2017-01-23 03:10:40

标签: android

我有一个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是白色的 white screen

我尝试添加

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {    
        if (mainFrame==null)
            return super.onKeyDown(keyCode, event);
    }
}

它不起作用。当我回拨Fragment到最后时,如何避免此白屏?任何帮助都会很棒!

2 个答案:

答案 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()
    }
}

白屏问题消失了!