背景
工作中偶爾需要監聽鍵盤彈出,收起,比如監聽使用者調出鍵盤的操作,顯示額外的ui;鍵盤收起,需要隱藏某些ui。
於是把這個功能寫成了一個工具類。
目前只實現一個功能: 監聽鍵盤的彈出&收起。
原理
因為鍵盤彈出或者收起,鍵盤頂部的view會頂起或降下,所以可以通過計算對應view的縱座標變化,判斷鍵盤的狀態。
前提
對應的 Activity
的 windowSoftInputMod
必須是 adjustResize
, 否則鍵盤的彈出、隱藏,不會引起佈局變化,我們就監聽不到縱座標變化
怎麼用
// 鍵盤彈出會被頂起的view,一般是 EditText,或包住 EditText 的Layout
EditText thePushUpView = findViewById(R.id.my_edit_text);
OkKeyboard.watch(thePushUpView, new KeyboardChangedListener() {
@Override
public void onKeyboardOpen() {
Log.d(TAG, "onKeyboardOpen");
}
@Override
public void onKeyboardHide() {
Log.d(TAG, "onKeyboardHide");
}
});
複製程式碼