Android源生并不支持监听键盘的开关,一般我们都是通过监听Layout的变化来实现

效果:

1.在Manifest文件中当前activity下面设置如下属性:

2.在键盘弹出时会改变大小的布局上设置监听

3.在监听方法中判断键盘是开启还是关闭状态.

        int[] i2 = new int[2];        overscroll.getLocationInWindow(i2);//得到当前控件在屏幕中的位置        if(overscroll.getHeight()< maxHeight-10){// 软键盘可见            hideAllExceptFocusView();//在软键盘显示时,隐藏除具有焦点外的View        }else if((overscroll.getHeight()> maxHeight+10 || overscroll.getHeight() == maxHeight)&&i2[1] > top){//控件高度变大了,且向下移动了.// 软键盘隐藏            showAllView();//在软键盘隐藏时,显示所有View            overscroll.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {                @Override                public void onGlobalLayout() {                    overscroll.getViewTreeObserver().removeGlobalOnLayoutListener(this);                    View focus = overscroll.findFocus();                    if(focus != null){                        //软键盘关闭时,滚动到存在焦点的控件的位置                        overscroll.scrollTo(overscroll.getScrollX(), ((View)focus.getParent()).getTop()+et_category.getHeight());                    }                }            });        }        maxHeight = overscroll.getHeight();        int[] i1 = new int[2];        overscroll.getLocationInWindow(i1);        top = i1[1];//保存上一次顶部的位置(方便下次判断控件是被顶起还是落下)

更多相关文章

  1. Android如何监听蓝牙耳机的按键事件
  2. AIDL基本用法
  3. .Net 转战 Android(安卓)4.4 日常笔记(9)--常用组件的使用方法[附
  4. 赵雅智:android发短信操作
  5. Android(安卓)UI 设计——TextView 控件
  6. android 你或许不知道的屏幕适配
  7. Android基于KeyboardView和Keyboard实现自定义软键盘 自定义键盘
  8. Android上定义播放器控件UniversalVideoView
  9. android 自定义控件 自定义属性详细介绍

随机推荐

  1. Javascript日期/时间函数是否依赖于客户
  2. 为什么在JavaScript中[5,6,8,7][1,2]= 8
  3. 【第2篇】TypeScript - 基本类型详解
  4. RxJs分组热观测值的笛卡尔积
  5. 取消/中止angularJs中的所有待处理请求
  6. 如何根据最新到最旧的id值对Json进行排序
  7. CSS3(jQUery?)当它悬停时隐藏元素“a”,这样
  8. LeetCode14.最长公共前缀 JavaScript
  9. ECMAScript6(6):数组的扩展
  10. 运行一次后停止执行函数