如何监听显示安卓软键盘事件
2016-04-13 09:43
253 查看
刚开始在onconfigurationChanged中监听,结果发现该方法在configuration变化即配置文件发生变化时才会被调用,如横竖屏切换,android重新载入配置文件时。而键盘隐藏不会触发该方法。后来采用如下方法完美解决了键盘隐藏监听事件。 //该Activity的最外层LayoutfinalView activityRootView = findViewById(R.id.activityRoot); //给该layout设置监听,监听其布局发生变化事件
activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(newOnGlobalLayoutListener(){
@Override
publicvoid onGlobalLayout(){ //比较Activity根布局与当前布局的大小
int heightDiff = activityRootView.getRootView().getHeight()- activityRootView.getHeight();
if(heightDiff >100){ //大小超过100时,一般为显示虚拟键盘事件 }else{ //大小小于100时,为不显示虚拟键盘或虚拟键盘隐藏 }
}
});
activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(newOnGlobalLayoutListener(){
@Override
publicvoid onGlobalLayout(){ //比较Activity根布局与当前布局的大小
int heightDiff = activityRootView.getRootView().getHeight()- activityRootView.getHeight();
if(heightDiff >100){ //大小超过100时,一般为显示虚拟键盘事件 }else{ //大小小于100时,为不显示虚拟键盘或虚拟键盘隐藏 }
}
});
相关文章推荐
- java.lang.ClassCastException: android.view.ViewGroup$LayoutParams cannot be cast to android.view.ViewGroup$MarginLayoutParams
- ConcurrentModificationException异常解决办法
- android中GridView关于间距的属性值介绍
- Android LayoutInflater深度解析 给你带来全新的认识
- android在EditText中插入表情图片
- Android TextView里直接显示图片的三种方法
- android SpannableString使用详解
- TextView字体加粗
- Android Studio 1.31 preview bug
- 解决scrollView 和listView 冲突的一种解决方案。
- 2015年08月10日
- 如何实现Android 布局背景模糊化处理
- 不是单纯的对图片做模糊处理而是自定义了LinearLayout 和RelativeLayout
- Activity栈控制,以及传值中出现的问题总结
- qq消息列表整合上下拉刷新和拖拽删除
- qq拖拽删除的效果
- 嵌入式环境下分层的串行帧通信的设计与实现
- AMD:浏览器中的模块规范
- 最适合作为Java基础面试题之Singleton模式
- iOS开发基础知识:Core Animation(核心动画)