android fragment輕松監聽返回鍵/Fragment中的popupwindow響應返回鍵隱藏


現在的開發我們基本上都是一個主activity中放多個fragment,點擊返回按鈕的時候,直接退出主activity,但是我們在fragment中經常會彈出例如popupWindow這樣的布局,用戶一般點擊返回按鈕的時候是想讓彈窗消失,而不是退出應用。如果你直接退出應用這樣的用戶體驗就非常的不好,所以我們就需要在fragment中監聽按鈕的點擊事件,做出對應的處理。 
比較常見的場景: 
在一個Fragment中按下返回鍵,先判斷下PopupWindow是否顯示,若顯示,隱藏PopupWindow,否則,執行系統的返回事件。

代碼示例

@Override
public void onResume() {
    super.onResume();
    getView().setFocusableInTouchMode(true);
    getView().requestFocus();
    getView().setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) {
                if (popupWindow != null && popupWindow.isShowing()) {
                    popupWindow.dismiss();
                    return true;//當fragment消費了點擊事件后,返回true,activity中的點擊事件就不會執行了
                }
            }
            return false;//當fragmenet沒有消費點擊事件,返回false,activity中繼續執行對應的邏輯
        }
    });
}

說明 
其中的getView()是獲取fragment所在的activity對象,這樣就可以實現監聽手機按鈕點擊事件了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM