2014-03-06 57 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