问题描述
我的应用程序有一个导航抽屉。从抽屉选项中,我打开了不同的活动。那时新Activity前会显示一个空白屏幕。
@覆盖 public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.nav_message:
Intent newAct = new Intent(getApplicationContext(),FeedbackActivity.class);
startActivity(newAct);
break;
}
drawer.closeDrawer(Gravity.RIGHT);
return true;
}
根据一些调查,我发现我们需要从中删除以下代码。尝试了相同的并且工作正常。
drawer.closeDrawer(Gravity.RIGHT);
return true;
但是当我点击新活动的后退按钮时,抽屉仍然处于打开状态。如果没有那个黑屏,我如何关闭?
解决方法
您是否尝试过将 GRAVITY.START
作为参数传递给 drawer.close(int gravity)
,如下所示:
switch (item.getItemId()) {
case R.id.nav_message:
Intent newAct = new Intent(getApplicationContext(),FeedbackActivity.class);
startActivity(newAct);
break;
}
drawer.closeDrawer(GravityCompat.START);
return true;
并且不要忘记用 findViewById()
尝试禁用抽屉菜单动画并在开始新活动之前调用 closeDrawer
drawer.closeDrawer(Gravity.RIGHT,false);
switch (item.getItemId()) {
case R.id.nav_message:
Intent newAct = new Intent(getApplicationContext(),FeedbackActivity.class);
startActivity(newAct);
break;
}
return true;