android键盘谈起和收起监听
16lz
2021-01-26
初始化
View mRootView; int rootViewVisibleHeight;//纪录根视图的显示高度
通过监听监听根布局高度变化来判断键盘弹出和收起
mRootView = getWindow().getDecorView(); //监听视图树中全局布局发生改变或者视图树中的某个视图的可视状态发生改变 mRootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { //获取当前根视图在屏幕上显示的大小 Rect r = new Rect(); mRootView.getWindowVisibleDisplayFrame(r); int visibleHeight = r.height(); System.out.println(""+visibleHeight); if (rootViewVisibleHeight == 0) { rootViewVisibleHeight = visibleHeight; return; } //根视图显示高度没有变化,可以看作软键盘显示/隐藏状态没有改变 if (rootViewVisibleHeight == visibleHeight) { return; } //根视图显示高度变小超过200,可以看作软键盘显示了 if (rootViewVisibleHeight - visibleHeight > 200) { rootViewVisibleHeight = visibleHeight; return; } //根视图显示高度变大超过200,可以看作软键盘隐藏了 if (visibleHeight - rootViewVisibleHeight > 200) { rootViewVisibleHeight = visibleHeight; return; }
更多相关文章
- Android实现随机圆形云标签效果
- Android开发之自动换行LinearLayout
- Android中用BaseAdapter实现带Button和显示网络图片的Listview
- 成功开发Android(安卓)app-5(视图)
- Android(安卓)常用基本控件 ImageButton
- Android经常使用UI组件 - TextView
- Android(安卓)Activity之Window的创建过程
- android多图拼接长图并合理显示
- Android(安卓)中Webview 自适应屏幕