2017-12-27 1612 views
-1

我想在关闭切换按钮后关闭导览器。现在,只要打开切换键,它就会打开抽屉。选择一个项目后,我可以关闭抽屉。再次按下Drawtoggle后关闭抽屉

是否可以执行我的方法来关闭抽屉?

这是我的方法:

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     return true; 
    } 
    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
      case android.R.id.home: 
       mDrawerLayout.openDrawer(GravityCompat.START); //THIS OPENS THE DRAWER 
       return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 

    private void setupDrawerContent(NavigationView navigationView) { 
     navigationView.setNavigationItemSelectedListener(
       new NavigationView.OnNavigationItemSelectedListener() { 
        @Override 
        public boolean onNavigationItemSelected(MenuItem menuItem) { 
         menuItem.setChecked(true); 
         mDrawerLayout.closeDrawers();  //THIS CLOSES THE DRAWER; AFTER A ITEM IS SELECTED 
         return true; 
        } 
       }); 
    } 

回答

1

易我猜。只要保持它是否是开放或不引入新public boolean isDrawerOpen成员的轨道

让我再尝试这样的事情

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case android.R.id.home: 
      if (!isDrawerOpen) { 
       mDrawerLayout.openDrawer(GravityCompat.START); 
       isDrawerOpen = true; 
      } else { 
       mDrawerLayout.closeDrawers(); 
       isDrawerOpen = false; 
      } 
      return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

private void setupDrawerContent(NavigationView navigationView) { 
    navigationView.setNavigationItemSelectedListener(
      new NavigationView.OnNavigationItemSelectedListener() { 
       @Override 
       public boolean onNavigationItemSelected(MenuItem menuItem) { 
        menuItem.setChecked(true); 
        mDrawerLayout.closeDrawers();  //THIS CLOSES THE DRAWER; AFTER A ITEM IS SELECTED 
        isDrawerOpen = false; 
        return true; 
       } 
      }); 
} 
+0

“isDrawerOpen”不可用:/ –

+0

像我在帖子本身说,'通过引入一个新的isDrawerOpen成员/变量' – Shark

+0

我用“mdrawerLayout.isDrawerOpen(null)”。但遗憾的是它没有工作 –

相关问题