我有一个特殊的情况,我有一个父Activity,它扩展了ActionBarActivity,在这个Activity中,我声明并初始化了我的DrawerLayout,并使用所有实现Navigation Drawer的样板代码。然后为了节省时间,我在我的代码中创建了新的Activities,这些Activities扩展了这个DrawerActivity,所以你可以在所有这些Activities中打开导航抽屉。
问题出现在这种情况下:
假设Activities是:
导航抽屉只有在您处于
问题出现在这种情况下:
假设Activities是:
Activity A = [A]
Activity B = [B]
两个类都扩展了DrawerActivity
[A] --- Open Drawer and Open --> [B] --- Press Back Button ---> [A]
导航抽屉只有在您处于
[A]
时从主页按钮
打开,但是当我从[B]
按下返回按钮时,无法从主页按钮
打开导航抽屉,但我可以滑动抽屉。请问是否有人能够解释一下我做错了什么,我正在想这是否与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);
}