android - 怎么判断软键盘是否弹出?
怪我咯
怪我咯 2017-04-17 15:06:03
[Android讨论组]

如题,有什么好的方法可以判断软键盘是否弹出?

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(3)
伊谢尔伦

自问自答吧。
给个链接http://toughcoder.net/blog/2015/10/09/android-trick-detect-soft-keyboard-show-slash-hide/

PHPz

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去做,不要直接在监听的事件里面直接处理。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号