如下监听键盘状态变化的代码摘自React native的键盘状态监听代码,
这个方法会影响部分性能,正常情况下可以忽略。
import android.graphics.Rect;
import android.support.annotation.Nullable;
import android.util.DisplayMetrics;
import android.view.View;
import android.view.ViewTreeObserver;
/**
* Keyboard status monitor.
*
* usage:
*
* View view;//View must be had added to the View Tree
*
*
* view.getViewTreeObserver().addOnGlobalLayoutListener(new KeyboardListener(view){
*
* @Override
* public void keyboardStatusChanged(boolean keyboardDidShow, @Nullable KeyboardInfo params){
* if(keyboardDidShow){
* //showing or height changed
* }else{
* //hidden
* }
* }
*
* });
*/
public abstract class KeyboardListener implements ViewTreeObserver.OnGlobalLayoutListener {
private int mKeyboardHeight = 0;
private final Rect mVisibleViewArea = new Rect();