2014-03-06 59 views
3

我想显示导航抽屉时,在物理菜单按钮,用户点击,我重写喜欢的菜单按钮如下:显示导航抽屉

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_MENU) { 

       // some code here to show navigation drawer 

      return true; 
     } 
     return super.onKeyDown(keyCode, event); 
    } 

但我不知道是什么我应该如何在此方法中显示导航抽屉。

P.S(我知道这是不是做一件好事,但我的团队领导坚持做到这一点)

+1

你真的不应该这样做,菜单按钮应始终打开溢出菜单。 –

+0

我把这个告诉了队长,但他没有听:( – Omar

回答

6

DrawerLayout.openDrawer(Gravity.LEFT)是你在找什么。顺便说一句,我认为这不是一个糟糕的想法,因为很多人还不熟悉抽屉。

+0

我认为这是一个不好的习惯,因为人们通常使用菜单按钮来显示“设置”菜单。 – Omar

+0

你是对的@Opetmar,菜单按钮应该用于溢出菜单,没有别的。 –

+0

是的,这是对Google的指导方针,但是因为他们实际上并没有在他们自己的应用程序中使用指南......我宁愿让用户开心,而不是Google: ) – Ripityom

2

那么,在布局的某个位置,您有一个DrawerLayout,它由您的主视图和导航抽屉视图组成。

现在你可以做...

final DrawerLayout drawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout); 
final View navigation = ((NavigationDrawer)drawerLayout.findViewById(R.id.navigation_drawer)); 

if(drawerLayout.isDrawerOpen(navigation)) drawerLayout.closeDrawer(navigation); 
else drawerLayout.openDrawer(navigation); 
+0

因为@Ripityom先回答我的问题,我不得不接受他的回答,但无论如何谢谢。 – Omar

+2

编写代码需要时间:) – ElDuderino