扫码关注官方订阅号
如题,有什么好的方法可以判断软键盘是否弹出?
走同样的路,发现不同的人生
自问自答吧。给个链接http://toughcoder.net/blog/2015/10/09/android-trick-detect-soft-keyboard-show-slash-hide/
iOS的问题?? 检测键盘显示的通知就行了啊。
final int heigh = getWindowManager().getDefaultDisplay().getHeight() /3; root.addOnLayoutChangeListener(new View.OnLayoutChangeListener() { @Override public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) { //弹起事件 if (bottom != 0 && oldBottom != 0 && oldBottom- bottom >heigh) { if (mListView.getLastVisiblePosition() != mDateArrays.size() - 1) { mListView.smoothScrollToPosition(mDateArrays.size() -1); } } else if(oldBottom != 0 && bottom != 0 &&(bottom - oldBottom > keyHeight)){ Toast.makeText(MainActivity.this, "监听到软件盘关闭...", Toast.LENGTH_SHORT).show(); } } });
在清单文件中添加:android :windowSoftInputMode= "stateAlwaysHidden|adjustResize"其中root是你的布局文件的根View。原因:因为一般我们的根View的位置是不会变化的,假如发生了变化,那么就可能是键盘弹起了,所以我们通过判断他的位置变化去判断键盘是否弹起。还有,我们假如是在键盘的弹起事件中去改变View的一些东西,比如更新啊,重绘之类的,尽量通过Handler去做,不要直接在监听的事件里面直接处理。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
自问自答吧。
给个链接http://toughcoder.net/blog/2015/10/09/android-trick-detect-soft-keyboard-show-slash-hide/
iOS的问题?? 检测键盘显示的通知就行了啊。
在清单文件中添加:android :windowSoftInputMode= "stateAlwaysHidden|adjustResize"
其中root是你的布局文件的根View。
原因:因为一般我们的根View的位置是不会变化的,假如发生了变化,那么就可能是键盘弹起了,所以我们通过判断他的位置变化去判断键盘是否弹起。还有,我们假如是在键盘的弹起事件中去改变View的一些东西,比如更新啊,重绘之类的,尽量通过Handler去做,不要直接在监听的事件里面直接处理。