我正在开发一个需要导航抽屉的应用程序.这个应用程序有1个MainActivity和大约10个片段.当我单击MainActivity中的导航抽屉图标时,它将显示10个片段,以便我们可以选择它们.
我选择片段A,然后选择B,然后选择C …到F.当我在片段F,然后按返回按钮,它会带我回到片段E,然后再回来,将带我到片段D …
我的问题是当我回到片段A(从片段B,当然),并再按一次Back按钮,它带我到一个空白的白色屏幕(我认为这是主要的活动布局).并再按一次,应用程式将退出.
我想要的是当我回到片段A(最后一个片段)并点击后,应用程序将立即退出,而不是空白的白色屏幕
我搜索了SO,发现1个类似的问题,但没有回答,所以我必须再提出一个问题
我该怎么做?
非常感谢你
解决方法
我想我是另一个未回答的问题,所以我想告诉你我的解决方法:
我检查我的FrameLayout中是否有一个孩子.如果有一个,我会回去一个片段.并再次检查.因为我确实只知道白屏,所以我需要检查一下0个孩子.如果还有另外一个片段,没有什么可做的,但是如果孩子== 0,你想要求离开活动.
或者,如果达到最后一个片段,您可以删除AlertDialog并关闭该应用.
@Override public void onBackPressed() { FrameLayout fl = (FrameLayout) findViewById(R.id.content_frame); if (fl.getChildCount() == 1) { super.onBackPressed(); if (fl.getChildCount() == 0) { new AlertDialog.Builder(this) .setTitle("Close App?") .setMessage("Do you really want to close this beautiful app?") .setPositiveButton("YES",new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog,int which) { finish(); } }) .setNegativeButton("NO",int which) { } }).show(); // load your first Fragment here } } else if (fl.getChildCount() == 0) { // load your first Fragment here } else { super.onBackPressed(); } }