0

我的应用程序有一个导航抽屉。从抽屉选项中,我打开了不同的活动。那时,在新 Activity 之前会显示一个空白屏幕。

@Override 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;

但是当我从新活动中单击后退按钮时,抽屉仍然处于打开状态。没有黑屏怎么关闭?

4

2 回答 2

3

您是否尝试过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()

于 2021-04-13T18:01:29.487 回答
1

在开始新活动之前尝试禁用抽屉菜单动画并调用 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;
于 2021-04-13T19:51:09.883 回答