Android浮动编辑框的具体实现代码-创新互联

Android app 开发中经常会遇到一些输入框要悬浮到软键盘上方的需求,大致做法有做法如下。

网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、微信小程序定制开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了安多免费建站欢迎大家使用!

Android输入法软键盘悬浮,最常见的一种方法是通过给ViewTreeObserver添加ViewTreeObserver.OnGlobalLayoutListener当全局布局完成时或视图树中视图的可见性发生变化时回调onGlobalLayout方法,在onGlobalLayout方法中获取当前窗口的区域,获取区域高度如果超过屏幕的五分之一一般认为是软键盘处于显示状态,区域高度即为输入法软键盘高度,通过此高度动态调整view的高度,达到输入框悬浮于软键盘上方的效果,代码如下:

ViewTreeObserver.OnGlobalLayoutListener layoutListener =
        new ViewTreeObserver.OnGlobalLayoutListener() {
      int mScreenHeight = 0;
      int mKeyboardHeight = 0;
      @Override
      public void onGlobalLayout() {
        Rect rect = new Rect();
        // 测量当前窗口的显示区域
        ((Activity)getContext()).getWindow().getDecorView()
            .getWindowVisibleDisplayFrame(rect);
        if(mScreenHeight <= 0){
          mScreenHeight = ((WindowManager) getContext()
              .getSystemService(Context.WINDOW_SERVICE))
              .getDefaultDisplay().getHeight();
        }
        //计算出软键盘的高度
        int keyboardHeight = mScreenHeight - rect.bottom;

        //如果keyboardHeight大于屏幕的五分之一,
        // 此时keyboardHeight有效,反之就是软键盘已经关闭了。
        if (Math.abs(keyboardHeight) > mScreenHeight / 5) {
          mKeyboardHeight = keyboardHeight;
        }
      }
    }

标题名称:Android浮动编辑框的具体实现代码-创新互联
文章链接:https://www.cdcxhl.com/article42/depdec.html

成都网站建设公司_创新互联,为您提供手机网站建设微信公众号网站设计公司做网站关键词优化定制开发

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设公司