boolean isVisiableForLast = false; int keyboardHeight = 0; public void addOnSoftKeyBoardVisibleListener(Activity activity) { 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(); //获得键盘高度 keyboardHeight = hight-displayHight; boolean visible = (double) displayHight / hight < 0.8; if(visible != isVisiableForLast){ // listener.onSoftKeyBoardVisible(visible,keyboardHeight ); if (visible){//软键盘显示 }else{ //软键盘隐藏 } } isVisiableForLast = visible; } }); }
监测软键盘的弹出和收起
猜你喜欢
转载自blog.csdn.net/u012760183/article/details/79969701
今日推荐
周排行