`

Android监听键盘是否弹出,以及获取软键盘的高度

 
阅读更多

网上介绍过监听键盘是否弹出的方法,我自己也是尝试过,不是很好用,今天发现了一种比较好的监听键盘是否弹出的方法,用起来十分简单,同时也可以通过此方法获取到键盘的高度

复制代码
    //如何获取软键盘的高度
    final RelativeLayout et = (RelativeLayout)findViewById(R.id.rootview);
    et.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener(){

            //当键盘弹出隐藏的时候会 调用此方法。
            @Override
            public void onGlobalLayout() {
                Rect r = new Rect();
                //获取当前界面可视部分
                MainActivity.this.getWindow().getDecorView().getWindowVisibleDisplayFrame(r);
                //获取屏幕的高度
                int screenHeight =  MainActivity.this.getWindow().getDecorView().getRootView().getHeight();
                //此处就是用来获取键盘的高度的, 在键盘没有弹出的时候 此高度为0 键盘弹出的时候为一个正数
                int heightDifference = screenHeight - r.bottom;
                Log.d("Keyboard Size", "Size: " + heightDifference);
            }
            
        });
复制代码

使用起来很简单只需判断键盘高度是否为0 就可以知道键盘是否弹出了。

getDecorView() 获取的是整个应用的view 包括标题栏,但是不包括状态栏,r.top就是状态栏的高度。

 
 
分享到:
评论

相关推荐

    Android监听软键盘弹出和收起事件

    监听Android软键盘弹出和收起事件(所有代码都是抽离自facebook/react-native源码中, 亲测有效, 放心食用)。回调事件方法参数包含键盘是否弹出(isShow)、键盘高度(keyboardHeight)、屏幕可用高度(screenHeight)、屏幕...

    android中监听软键盘的弹出与隐藏,并获取软键盘的高度

    总的来说,监听Android软键盘的弹出与隐藏,以及获取软键盘高度,可以通过多种方式实现,开发者应根据具体需求选择合适的方法。同时,要注意兼容不同的`windowSoftInputMode`设置,以确保在各种情况下都能正确处理...

    Android判断软键盘是否弹出

    Android系统在软键盘弹出或隐藏时会触发Activity的布局过程,我们可以通过监听这个过程来判断软键盘的状态。描述中提到的方法是通过重写`onLayout`方法来实现这一功能。 `onLayout`方法是View类的一个回调方法,它...

    android 监听软键盘状态(弹起还是收起)

    在Android开发中,有时我们需要监听软键盘的打开与关闭状态,比如在聊天界面或搜索框等场景下,以便做出相应的布局调整。虽然Android SDK并没有提供直接的API来监听软键盘的状态,但我们可以通过一些技巧来实现这个...

    监听软键盘的弹出与收起

    当用户点击输入框时,系统会自动弹出软键盘;反之,当用户点击屏幕其他区域或按下回车键时,软键盘会收起。然而,开发者可能需要在某些场景下精确控制这一过程,例如调整布局以适应软键盘的显示,或者实现特定的业务...

    监听Android系统软键盘的弹出与关闭(案例代码)

    代码来源: 从facebook React源码ReactRootView中抽离CustomGlobalLayoutListener,用于监听Android系统软键盘的弹出与关闭。 ...软键盘弹出和关闭时,可同时回调 keyboardHeight 软键盘的高度值。

    android监听软键盘状态

    当用户在EditText等输入框中点击时,系统会自动弹出软键盘。然而,Android SDK并没有提供直接的方法来检测软键盘的显示和隐藏。因此,我们需要通过一些间接的方式来实现这一目标。 一种常见的方法是通过测量...

    监听软键盘的弹出与收起(近乎完美的)

    这个方法通过比较屏幕高度和根视图高度的差值来判断软键盘是否弹出。当差值大于200dp时,认为是键盘弹出。 二、方法二:使用root view的OnFocusChangeListener 另一种方法是通过监听root view的焦点变化来判断键盘...

    监听软键盘弹出和隐藏

    当软键盘弹出时,屏幕的可使用高度会减少,因此可以通过比较不同时间点的布局高度来判断软键盘是否弹出。然而,这种方法的缺点是它可能导致界面压缩,而不是控件平移,这可能不符合某些开发者的设计需求。如果需要在...

    Android 设置一个底部控件view随着软键盘的弹出而上移

    总的来说,实现Android底部控件随软键盘弹出上移是一项常见的优化操作,它涉及到对Android布局机制的理解以及适时的事件监听和响应。通过灵活运用Android提供的组件和接口,或者借助第三方库,我们可以轻松解决这个...

    android键盘弹出/收起监听demo

    总结来说,"android键盘弹出/收起监听demo"展示了如何通过自定义监听器实现对Android软键盘状态的实时监控,同时避免了Split Action Bar的影响。这个技术在许多需要优化用户体验的场景下都非常有用,比如聊天应用中...

    android adjustNothing下获取键盘高度

    在Android开发中,当用户在应用中使用软键盘时,屏幕布局可能会受到键盘弹出的影响。特别是对于那些希望保持背景不随键盘移动的应用,开发者需要掌握如何在`adjustNothing`模式下处理键盘出现时的问题。`...

    Android监听软键盘弹出与隐藏的两种方法

    在Android开发中,有时我们需要监听软键盘的弹出与隐藏,以便根据键盘的状态调整UI布局或执行相应的操作。本文将详细介绍两种实现这一功能的方法。 首先,我们来看第一种方法,这种方法主要依赖于AndroidManifest....

    android监听软键盘的弹出与隐藏的示例代码

    在程序启动时,EditView获取焦点并弹出软键盘,这会导致界面底部的一个控件被顶上去,影响了用户界面的整体布局。因此,开发者需要在软键盘弹出时隐藏这个底部控件,在软键盘隐藏时再显示它。 文章还提到了使用...

    android 输入法键盘弹出与否判断和输入法键盘弹出时将界面滚动到指定位置demo

    这个"android 输入法键盘弹出与否判断和输入法键盘弹出时将界面滚动到指定位置demo"着重于解决两个关键问题:一是检测输入法键盘是否弹出,二是当键盘弹出时如何自动调整界面布局以确保重要内容可见。 首先,我们要...

    android自定义View在软键盘上方,监听软键盘的状态一个测量其高度

    在软键盘弹出后随即弹出自定义的PopuWindow在其上方,里面还给PopuWindow加入了显示 和消失的动画,另外实现了对软键盘显示和隐藏状态的监听,以及对其高度的测量,需要做些逻辑处理的话可以直接在里面写相关的代码...

    Android监听键盘状态获取键盘高度的实现方法

    因此,我需要监听软键盘的打开/关闭 , 以及获取它的高度. ViewTreeObserver A view tree observer is used to register listeners that can be notified of global changes in the view tree. Such global events ...

    android EditText跟随键盘弹出,背景不会被顶上去

    这就是"android EditText跟随键盘弹出,背景不会被顶上去"这个话题的核心。 首先,我们需要理解Android系统的默认行为。当`EditText`在屏幕底部,软键盘弹出时,系统通常会调整布局以适应键盘,但这可能导致`...

Global site tag (gtag.js) - Google Analytics