Android 软键盘上面 输入框弹起 计算软键盘高度法实现

Posted 潇潇微雨up

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 软键盘上面 输入框弹起 计算软键盘高度法实现相关的知识,希望对你有一定的参考价值。

大概方法: OnGlobalLayoutListener方法监听window的变化  如果可见屏幕的高度小于屏幕高度的80% 则说明弹出了

这种方式通常是在 默认的弹出冲突了  或者已经使用了默认的弹出方式的情况下使用。。


 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 );
//                    ToastUtils.showSuccess(getApplicationContext(),"变化了  "+ visible);
                    if (visible) //软键盘显示并且pop显示
                        if (popEditWindow != null && popEditWindow.isShowing()) 
                            RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, DisplayUtil.dip2px(50));
                            layoutParams.topMargin = displayHight - DisplayUtil.dip2px(50);
                            relEnter.setLayoutParams(layoutParams);
                            relEnter.setVisibility(View.VISIBLE);
                        
                     else 
                        if (popEditWindow != null && popEditWindow.isShowing()) 
                            relEnter.setVisibility(View.GONE);
                            //hiddenEditViewPop2();
                        
                    
                
                isVisiableForLast = visible;
            
        );
    

以上是关于Android 软键盘上面 输入框弹起 计算软键盘高度法实现的主要内容,如果未能解决你的问题,请参考以下文章

移动端H5软键盘的问题

android全屏下的输入框未跟随软键盘弹起问题

H5如何对android和ios手机软键盘的监听

iOS webview html5 移动端 软键盘弹起遮挡输入框

android 软键盘弹起怎么让view上移

uniapp 解决input / textarea 输入时软键盘弹起覆盖输入框总结