导航抽屉主页按钮在打开另一个活动并返回后无法打开抽屉



我有一个特殊的情况,我有一个父Activity,它扩展了ActionBarActivityActivity我声明并初始化了我的DrawerLayout,使用所有用于实现导航抽屉的样板代码

然后为了节省时间,我创建了新的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);
}

相关内容

  • 没有找到相关文章

最新更新