导航抽屉主页按钮在打开另一个 activity 并返回后不会打开抽屉

Nav Drawer Home Button does not open drawer after opening another activity and going back

我有一个特殊的情况,我有一个扩展 ActionBarActivity 的父 Activity,其中 Activity 我用所有样板声明并初始化我的 DrawerLayout实现 Navigation Drawer

的代码

为了节省时间,我创建了新的 Activities,它在我的代码中扩展了这个 DrawerActivity,这样您就可以在所有这些活动中打开导航抽屉。

出现这种情况时出现的问题:

假设活动是:

Activity A = [A]
Activity B = [B]

两者都扩展 DrawerActivity

[A] --- Open Drawer and Open --> [B] --- Press Back Button ---> [A]

当您在 [A] 时,导航抽屉从 Home Button 打开,但是当我从 [B] 按下后退按钮时,我无法从 Home Button 但我可以滑出抽屉。

有人可以向我解释一下我在这里做错了什么吗,我想知道 ActionBarDrawerToggle.syncState() 是否存在问题,但我尝试在所有可能的地方实施它,但它并没有解决问题。

就像我上面提到的,所有样板代码都已经写好了,例如:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    switch (id) {
        case android.R.id.home:
            if (!mDrawerLayout.isDrawerOpen(recyclerView)) {
                mDrawerLayout.openDrawer(recyclerView);
                mActionBarDrawerToggle.syncState();
            } else if (mDrawerLayout.isDrawerOpen(recyclerView)) {
                mDrawerLayout.closeDrawer(recyclerView);
                mActionBarDrawerToggle.syncState();
            }
            break;
        case R.id.action_logout:
            new DeauthorizeTask().execute();
    }
    return super.onOptionsItemSelected(item);
}

确保您已正确覆盖 onOptionsItemSelected()

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    if (mDrawerToggle.onOptionsItemSelected(item)) {
      return true;
    }
    // Handle your other action bar items...

    return super.onOptionsItemSelected(item);
}