Android键盘监听事件
生活随笔
收集整理的這篇文章主要介紹了
Android键盘监听事件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文檔為個人博客文檔系統的備份版本、作者:小游、作者博客:點擊訪問
我們想實現安卓鍵盤彈起和隱藏的監聽事件,可以使用下面這個方法。
自己新建一個java文件,內容如下:
public class SoftKeyBoardListener {private View rootView;//activity的根視圖int rootViewVisibleHeight;//紀錄根視圖的顯示高度private OnSoftKeyBoardChangeListener onSoftKeyBoardChangeListener;public SoftKeyBoardListener(Activity activity) {//獲取activity的根視圖rootView = activity.getWindow().getDecorView();//監聽視圖樹中全局布局發生改變或者視圖樹中的某個視圖的可視狀態發生改變rootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {@Overridepublic void onGlobalLayout() {//獲取當前根視圖在屏幕上顯示的大小Rect r = new Rect();//獲取rootView在窗體的可視區域rootView.getWindowVisibleDisplayFrame(r);int visibleHeight = r.height();if (rootViewVisibleHeight == 0) {rootViewVisibleHeight = visibleHeight;return;}//根視圖顯示高度沒有變化,可以看作軟鍵盤顯示/隱藏狀態沒有改變if (rootViewVisibleHeight == visibleHeight) {return;}//根視圖顯示高度變小超過200,可以看作軟鍵盤顯示了if (rootViewVisibleHeight - visibleHeight > 200) {if (onSoftKeyBoardChangeListener != null) {onSoftKeyBoardChangeListener.keyBoardShow(rootViewVisibleHeight - visibleHeight);}rootViewVisibleHeight = visibleHeight;return;}//根視圖顯示高度變大超過200,可以看作軟鍵盤隱藏了if (visibleHeight - rootViewVisibleHeight > 200) {if (onSoftKeyBoardChangeListener != null) {onSoftKeyBoardChangeListener.keyBoardHide(visibleHeight - rootViewVisibleHeight);}rootViewVisibleHeight = visibleHeight;return;}}});}private void setOnSoftKeyBoardChangeListener(OnSoftKeyBoardChangeListener onSoftKeyBoardChangeListener) {this.onSoftKeyBoardChangeListener = onSoftKeyBoardChangeListener;}public interface OnSoftKeyBoardChangeListener {void keyBoardShow(int height);void keyBoardHide(int height);}public static void setListener(Activity activity, OnSoftKeyBoardChangeListener onSoftKeyBoardChangeListener) {SoftKeyBoardListener softKeyBoardListener = new SoftKeyBoardListener(activity);softKeyBoardListener.setOnSoftKeyBoardChangeListener(onSoftKeyBoardChangeListener);} }在activity中調用
//自動監聽鍵盤事件 SoftKeyBoardListener.setListener(this, new SoftKeyBoardListener.OnSoftKeyBoardChangeListener() {@Overridepublic void keyBoardShow(int height) {Toast.makeText(PostActivity.this, "鍵盤顯示 高度" + height, Toast.LENGTH_SHORT).show();}@Overridepublic void keyBoardHide(int height) {Toast.makeText(PostActivity.this, "鍵盤隱藏 高度" + height, Toast.LENGTH_SHORT).show();} });參考文章https://www.jianshu.com/p/c4c5adc7dd43
總結
以上是生活随笔為你收集整理的Android键盘监听事件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cocosbuilder3.0使用小记
- 下一篇: android sina oauth2.