Android監聽鍵盤是否彈出,以及獲取軟鍵盤的高度

網上介紹過監聽鍵盤是否彈出的方法,我自己也是嘗試過,不是很好用,今天發現了一種比較好的監聽鍵盤是否彈出的方法,用起來十分簡單,同時也可以通過此方法獲取到鍵盤的高度

複製代碼
    //如何獲取軟鍵盤的高度
    final RelativeLayout et = (RelativeLayout)findViewById(R.id.rootview);
    et.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener(){

            //當鍵盤彈出隱藏的時候會 調用此方法。
            @Override
            public void onGlobalLayout() {
                Rect r = new Rect();
                //獲取當前界面可視部分
                MainActivity.this.getWindow().getDecorView().getWindowVisibleDisplayFrame(r);
                //獲取屏幕的高度
                int screenHeight =  MainActivity.this.getWindow().getDecorView().getRootView().getHeight();
                //此處就是用來獲取鍵盤的高度的, 在鍵盤沒有彈出的時候 此高度爲0 鍵盤彈出的時候爲一個正數
                int heightDifference = screenHeight - r.bottom;
                Log.d("Keyboard Size", "Size: " + heightDifference);
            }
            
        });
複製代碼

使用起來很簡單隻需判斷鍵盤高度是否爲0 就可以知道鍵盤是否彈出了。

getDecorView() 獲取的是整個應用的view 包括標題欄,但是不包括狀態欄,r.top就是狀態欄的高度。

 
 
發佈了581 篇原創文章 · 獲贊 1 · 訪問量 44萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章