未分类 · 2022年10月28日 0

Android 监听软键盘弹出收回事件

内容纲要

使用开源库 https://github.com/yshrsmz/KeyboardVisibilityEvent

安装

AAR 通过 Maven Central 分发。最新版本点击 Maven

dependencies {
    implementation("net.yslibrary.keyboardvisibilityevent:keyboardvisibilityevent:3.0.0-RC3")
}

为键盘更改事件添加事件侦听器

在 Activity 的 onDestroy 上自动注销事件

KeyboardVisibilityEvent.setEventListener(
        getActivity(),
        new KeyboardVisibilityEventListener() {
            @Override
            public void onVisibilityChanged(boolean isOpen) {
                // some code depending on keyboard visiblity status
            }
        });

自动注销 LifecycleOwner 上的事件 ON_DESTROY

当您想从片段中获取 KeyboardVisibilityEvent 时,这很方便。

KeyboardVisibilityEvent.setEventListener(
        getActivity(),
        getLifecycleOwner(),
        new KeyboardVisibilityEventListener() {
            @Override
            public void onVisibilityChanged(boolean isOpen) {
                // some code depending on keyboard visiblity status
            }
        });

手动注销事件

// get Unregistrar
Unregistrar unregistrar = KeyboardVisibilityEvent.registerEventListener(
        getActivity(),
        new KeyboardVisibilityEventListener() {
            @Override
            public void onVisibilityChanged(boolean isOpen) {
                // some code depending on keyboard visiblity status
            }
        });

// call this method when you don't need the event listener anymore
unregistrar.unregister();