adnroid 监听软键盘的显隐

首先注明出处,我只是想做个笔记:http://www.jb51.net/article/64820.htm

第一眼看到的时候,觉得不太可靠,因为之前都是看到这样处理的,根据监听一个根布局的size,可是那个效果不怎么样,我不想用,就想再找找,看到这个的时候就试了试,效果很棒。也学习了

/**
     * 监听软键盘状态
     *
     * @param activity
     * @param listener
     */
    public static void addOnSoftKeyBoardVisibleListener(Activity activity, final OnSoftKeyBoardVisibleListener listener) {
        final View decorView = activity.getWindow().getDecorView();
        decorView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                Rect rect = new Rect();
                decorView.getWindowVisibleDisplayFrame(rect);
                int displayHight = rect.bottom - rect.top;
                int hight = decorView.getHeight();
                boolean visible = (double) displayHight / hight < 0.8;
                listener.onSoftKeyBoardVisible(visible);
            }
        });
    }

接口自己定义下就可以了:

public interface OnSoftKeyBoardVisibleListener {
    void onSoftKeyBoardVisible(boolean visible);
}

最后还是谢谢大神

时间: 2024-10-01 06:02:30

adnroid 监听软键盘的显隐的相关文章

Android App监听软键盘按键的三种方式(转)

最近有类似需求,在csdn上刚好发现,粘贴过来,以防止忘记喽 前言: 我们在android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的“GO”按键加载url页面:在点击搜索框的时候,点击右下角的search符号键可以进行搜索:或者在全部数据输入完毕后,点击右下角的"done"就马上进行下一步操作. 效果图: function 1: 重写Activity的dispatchKeyEvent(KeyEvent event)方法,在其中

键盘-App监听软键盘按键的三种方式

前言: 我们在android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的“GO”按键加载url页面:在点击搜索框的时候,点击右下角的search符号键可以进行搜索:或者在全部数据输入完毕后,点击右下角的"done"就马上进行下一步操作. 效果图: function 1: 重写Activity的dispatchKeyEvent(KeyEvent event)方法,在其中监听KeyEventKey.KEYCODE_ENTER键(右下

Android App监听软键盘按键的三种方式

前言: 我们在android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的"GO"按键加载url页面:在点击搜索框的时候,点击右下角的search符号键可以进行搜索:或者在全部数据输入完毕后,点击右下角的"done"就马上进行下一步操作. 效果图: function 1: 重写Activity的dispatchKeyEvent(KeyEvent event)方法,在其中监听KeyEventKey.KEYCODE

&lt;Android&gt;监听软键盘打开收起事件(软键盘自带收起按钮)

最近在公司开发cocos2dx上的android输入框控件,遇到软键盘的事件监听,通常软键盘的收起方式大致3种: 1.点击软键盘右下角的Return按钮(系统收起) 2.输入框焦点时按返回按钮(系统收起) 3.点击软键盘和输入框的外部(自发收起) 4.点击软键盘自带的收起按钮(软键盘收起) 前三种事件可以监听,方式都比较简单 1.点击软键盘右下角的Return按钮 给输入框设置监听 editText.setOnEditorActionListener(new OnEditorActionList

ionic3 监听软键盘的高度

ionic1 和普通cordova的大家都知道 就是看ionic3 和4 https://blog.csdn.net/sean_css/article/details/70243893 ionic cordova plugin add ionic-plugin-keyboard $ npm install --save @ionic-native/keyboard 经过本人测试 这个方法 ionic1 ionic3 都可以用 ionic3 把方法写到 构造器 或者 生命周期事件里面就行 ioni

Android 另类方法监听软键盘的弹出收起事件

http://www.cnblogs.com/csonezp/p/5065624.html 最近做的项目碰到个问题,a界面是fragment+recyclerview,b界面带个edittext,并且会自动获得焦点弹出软键盘.由a界面进入b界面,再结束b界面返回a界面,就会在a界面上留下一片和软键盘大小相同的灰色区域,具体原因搞了很久也不清楚.但是问题总是要解决的,我在a的fragment上折腾了半天,始终没什么用.然后就想着在b界面折腾折腾,关闭activity的时候先收起挼键盘,软键盘收起完

JS移动端如何监听软键盘回车事件

移动端经常项目中会有搜索之类的功能,一般实现的是按搜索按钮进行搜索,如果要像PC端一样实现按回车键进行搜索该怎么实现呢? 方法很简单,就是在搜索框的input外面套一个form标签  注意点:form标签一定得添加 action属性(可设置为空) <form action=""><input type="text" name="search" /></form> 移动端软键盘的回车会触发form的submit事

AsyncHttpClient 登录 Application Fragment 回调 监听 软键盘

Activity /**登录界面及登陆后用户首页界面,使用两个Fragment实现*/ public class LoginActivity extends Activity implements LoginInterface {     /** 存放Fragment的容器 */     private View fragmentContainer;     /** 在使用replace替换Fragment是需要一个id */     public static final int ROOT_I

Android App监听软键盘按键的三种方式与改变软键盘右下角确定键样式

actionNone : 回车键,按下后光标到下一行actionGo : Go,actionSearch : 放大镜actionSend : SendactionNext : NextactionDone : Done,确定/完成,隐藏软键盘,即使不是最后一个文本输入框 android:singleline="true" android:imeoptions="actionSearch" EditText.setOnEditorActionListener设置监听