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

关于作者

景三,程序员,主要从事Android平台基础架构方面的工作,欢迎交流技术方面的问题,可以去我的Github提issue或者发邮件至relish.wang@gmail.com与我交流。

@[toc]

零、项目简介

KeyboardListener是从facebook/react-native源码中抽离出来的用于监听Android软键盘弹出与收回事件的工具。

扫描二维码下载Demo
下载Demo的二维码

KeyboardListener-Demo.apk

一、效果演示

显示底部NavigationBar

图1 显示底部NavigationBar的情况
(注意“屏幕可用高度”的数值)

隐藏底部NavigationBar

图2 隐藏底部NavigationBar的情况
(注意“屏幕可用高度”的数值)

二、使用方法

可以直接把DisplayMetricsHolderGlobalLayoutListenerOnKeyboardChangedListener三个文件直接拷贝到你的工程里使用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
rootView.getViewTreeObserver().addOnGlobalLayoutListener(
new GlobalLayoutListener(rootView, new OnKeyboardChangedListener() {
/**
* 键盘事件
*
* @param isShow 键盘是否展示
* @param keyboardHeight 键盘高度(当isShow为false时,keyboardHeight=0)
* @param screenWidth 屏幕宽度
* @param screenHeight 屏幕可用高度(不包含底部虚拟键盘NavigationBar), 即屏幕高度-键盘高度(keyboardHeight)
*/
@Override
public void onChange(boolean isShow, int keyboardHeight, int screenWidth, int screenHeight) {
// do sth.
}
}));

标注

三、更新日志

CHANGELOG.md

四、致谢

感谢facebook/react-native提供代码解决方案。

本仓库使用的react-native相关代码:

坚持原创技术分享,您的支持将鼓励我继续创作!
显示 Gitment 评论