2015-09-29 109 views
0

我在所有的活動中遇到問題,當我按下後退按鈕時它可以正常工作,但是當我按下上下文菜單按鈕之前,按下後沒有任何反應。 我正在討論電話按鈕,而不是用於後退導航的工具欄圖標。有沒有人處理過這個問題?Android上下文按鈕阻止後退按鈕功能

編輯: 沒有菜單顯示,onPrepareOptionsMenu()被刪除,手機振動,當我按回但沒有行動。 我看到如果我膨脹一個菜單,它會在關閉te popup後的第一個後面正確崇拜。

我發現只有使用setSupportActionBar(toolbar)設置工具欄時纔會發生這種情況;

+1

是否有彈出的上下文菜單?如果是這樣,後退按鈕關閉上下文菜單,這是正常的行爲。如果您看不到上下文菜單,那麼您可能仍然定義了一個空的上下文菜單。 – Glaucus

+0

OnPrepareOptionsMenu()被刪除,我試圖返回false,但沒有運氣。你有什麼建議? 沒有彈出窗口顯示,我可以儘可能多地回擊它,它什麼也不做。 –

+0

你重寫onBackPressed()嗎? –

回答

1

我有幾乎同樣的問題,這是我的情況:

  • AppCompatActivity與工具欄與setSupportActionBar(工具欄)設置;
  • 我使用的是抽屜式導航(不知道這是否會影響)
  • onBackPressed()是被覆蓋的提示註銷對話框

所有,直到我按下設備菜單按鈕做工精細,然後應用程序開始忽略後退按鈕。

這是我按下設備菜單按鈕

  • 方法onBackPressed(後)看到如果設置的onkeyup(INT的keyCode,KeyEvent的事件)是不是這個
  • 後調用,它接收事件(你可以檢查德鍵代碼是一樣的KeyEvent.KEYCODE_BACK)

我不知道爲什麼onBackPressed被稱爲停止,嘗試沒有覆蓋onBackPressed和的onkeyup,問題還是一樣。

我知道這是不是最好的解決辦法,但要解決這個問題,我使用下面的代碼:

@Override 
    public boolean onKeyUp(int keyCode, KeyEvent event) { 
     if (keyCode==KeyEvent.KEYCODE_BACK){ 
       onBackPressed(); 
       return true; 
     } 
     return super.onKeyUp(keyCode, event); 
    } 

希望這有助於。

+0

很酷,我正在嘗試調度關鍵事件,並沒有正常工作。 –