Android 軟鍵盤的監(jiān)聽(監(jiān)聽高度,是否顯示)

Android官方本身沒有提供一共好的方法來對(duì)軟鍵盤進(jìn)行監(jiān)聽,但我們實(shí)際應(yīng)用時(shí),很多地方都需要針對(duì)軟鍵盤來對(duì)UI進(jìn)行一些優(yōu)化。

public class SoftKeyboardUtil {  
    public static void observeSoftKeyboard(Activity activity, final OnSoftKeyboardChangeListener listener) {  
        final View decorView = activity.getWindow().getDecorView();  
        decorView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {  
            int previousKeyboardHeight = -1;  
            @Override  
            public void onGlobalLayout() {  
                Rect rect = new Rect();  
                decorView.getWindowVisibleDisplayFrame(rect);  
                int displayHeight = rect.bottom - rect.top;  
                int height = decorView.getHeight();  
                int keyboardHeight = height - displayHeight;  
                if (previousKeyboardHeight != keyboardHeight) {  
                    boolean hide = (double) displayHeight / height > 0.8;  
                    listener.onSoftKeyBoardChange(keyboardHeight, !hide);  
                }  
  
                previousKeyboardHeight = height;  
  
            }  
        });  
    }  
  
    public interface OnSoftKeyboardChangeListener {  
        void onSoftKeyBoardChange(int softKeybardHeight, boolean visible);  
    }  
}  
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,950評(píng)論 25 709
  • 內(nèi)容抽屜菜單ListViewWebViewSwitchButton按鈕點(diǎn)贊按鈕進(jìn)度條TabLayout圖標(biāo)下拉刷新...
    皇小弟閱讀 47,147評(píng)論 22 665
  • 1.CSS簡(jiǎn)介 CSS(Cascading Style Sheets)通常稱為CSS樣式表或?qū)盈B樣式表(級(jí)聯(lián)樣式表...
    楚簡(jiǎn)約閱讀 3,944評(píng)論 0 4
  • 每個(gè)人都不是完美的,沒有必要追著一個(gè)小錯(cuò)誤僅僅不放。 你面對(duì)別人的惡意,已經(jīng)很厲害了,沒有必要在意鬣狗的結(jié)群吠叫。...
    劉溜溜61閱讀 452評(píng)論 0 0
  • 一 冬天來了 春天還會(huì)遠(yuǎn)麼 清風(fēng)告訴你答案 二 我不問 你不說 這是距離 三 我問了 你不說 這是鴻溝 四 樹葉的...
    二零一久閱讀 249評(píng)論 1 1

友情鏈接更多精彩內(nèi)容