精华内容
下载资源
问答
  • android防止软键盘遮挡输入框
    千次阅读
    2022-03-25 10:38:58

    步骤一:配置AndroidManifest.xml和activity

    android:windowSoftInputMode="stateHidden|adjustResize"

    步骤二:activity的布局文件改成如下格式

    <LinearLayout

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical"

    >

    <!--你的标题等-->

    <androidx.core.widget.NestedScrollView>

    <!--你界面的内容-->

    </androidx.core.widget.NestedScrollView>

    </LinearLayout>

    步骤三:配置ImmersionBar的keyboardEnable为true

    ImmersionBar.with(this)
            .statusBarView(view)
            .keyboardEnable(true)
            .init();

    提示:缺一个步骤都不行

    如果不是使用ImmersionBar实现沉浸式标题的项目,可参考解决Android软键盘在全屏下设置adjustResize无效的问题 - 云+社区 - 腾讯云

    更多相关内容
  • 弹出软键盘时: ios端$(‘body’).scrollTop()会改变 android端$(window).height()会改变 拉起键盘不是一瞬间,而是有一个缓动过程 问题重现 ios端,经常会出现输入法遮挡输入框的问题(特别是那种有一个白色顶部的...
  • android解决软键盘遮挡输入框的示例代码
  • 在开发中,经常会遇到键盘挡住输入框的情况,比如登录界面或注册界面,弹出的软键盘把登录或注册按钮挡住了,用户必须把软键盘收起,才能点击相应按钮,这样的用户体验非常不好。像微信则直接把登录按钮做在输入框的...
  • 下面我就为大家推荐一篇js解决软键盘遮挡输入框的问题分享,具有很好的参考价值,希望对大家有所帮助。经验须知弹出软键盘时:ios端$(‘body').scrollTop()会改变android端$(window).height()会改变拉起键盘不是一...

    下面我就为大家推荐一篇js解决软键盘遮挡输入框的问题分享,具有很好的参考价值,希望对大家有所帮助。

    经验须知

    弹出软键盘时:

    ios端$(‘body').scrollTop()会改变

    android端$(window).height()会改变

    拉起键盘不是一瞬间,而是有一个缓动过程

    问题重现

    ios端,经常会出现输入法遮挡输入框的问题(特别是那种有一个白色顶部的输入法,如:百度输入法),如图:

    66de24b43c4162df190048a383d4cd12.png

    问题解决

    我们只需要在输入框聚焦之后,开启一个定时器,执行$(‘body').scrollTop(1000000),这样由于整个body滚动到了最下面,输入框自然就看见了,具体请查看以下示例

    示例源码

    demo

    * {

    margin: 0;

    padding: 0;

    }

    body, html {

    width: 100%;

    height: 100%;

    }

    .bottom {

    position: absolute;

    left: 0;

    bottom: 0;

    width: 100%;

    font-size: 0;

    }

    input {

    font-size: 14px;

    box-sizing: border-box;

    width: 50%;

    height: 50px;

    line-height: 50px;

    }

    $(function() {

    // 解决输入法遮挡

    var timer = null;

    $('.bInput').on('focus', function() {

    clearInterval(timer);

    var index = 0;

    timer = setInterval(function() {

    if(index>5) {

    $('body').scrollTop(1000000);

    clearInterval(timer);

    }

    index++;

    }, 50)

    })

    });

    上面是我整理给大家的,希望今后会对大家有帮助。

    相关文章:

    展开全文
  • 最近在做直播项目,遇到一个问题就是软键盘弹起时会遮挡一部分的输入框,在网上找了很多办法都不能解决,最后还是dubug发现自己代码中一个获取屏幕可见高度时取值问题,改了之后变好了,下面上实现代码: ...

    最近在做直播项目,遇到一个问题就是软键盘弹起时会遮挡一部分的输入框,在网上找了很多办法都不能解决,最后还是dubug发现自己代码中一个获取屏幕可见高度时取值问题,改了之后变好了,下面上实现代码:

    public class SoftKeyBoardListener {
        private View rootView;//activity的根视图
        int rootViewVisibleHeight;//纪录根视图的显示高度
        private OnSoftKeyBoardChangeListener onSoftKeyBoardChangeListener;
    
        public SoftKeyBoardListener(Activity activity) {
            //获取activity的根视图
            rootView = activity.getWindow().getDecorView();
    
    
            //监听视图树中全局布局发生改变或者视图树中的某个视图的可视状态发生改变
            rootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
                @Override
                public void onGlobalLayout() {
                    //获取当前根视图在屏幕上显示的大小
                    Rect r = new Rect();
                    rootView.getWindowVisibleDisplayFrame(r);
    
    //                int visibleHeight = r.height();//就是这行代码获取第一次高度与后面几次高度不一致
                    int visibleHeight = r.bottom;//修改为这行代码
                    System.out.println(""+visibleHeight);
                    if (rootViewVisibleHeight == 0) {
                        rootViewVisibleHeight = r.bottom;
                        return;
                    }
    
                    //根视图显示高度没有变化,可以看作软键盘显示/隐藏状态没有改变
                    if (rootViewVisibleHeight == visibleHeight) {
                        return;
                    }
    
                    Log.e("弹起 ",r.bottom+" "+rootView.getRootView().getHeight());;
    
                    //根视图显示高度变小超过200,可以看作软键盘显示了
                    if (rootViewVisibleHeight - visibleHeight > 200) {
                        if (onSoftKeyBoardChangeListener != null) {
                            onSoftKeyBoardChangeListener.keyBoardShow(rootViewVisibleHeight - visibleHeight);
                        }
                        rootViewVisibleHeight = visibleHeight;
                        return;
                    }
    
                    //根视图显示高度变大超过200,可以看作软键盘隐藏了
                    if (visibleHeight - rootViewVisibleHeight > 200) {
                        if (onSoftKeyBoardChangeListener != null) {
                            onSoftKeyBoardChangeListener.keyBoardHide(visibleHeight - rootViewVisibleHeight);
                        }
                        rootViewVisibleHeight = visibleHeight;
                        return;
                    }
    
                }
            });
        }
    
        private void setOnSoftKeyBoardChangeListener(OnSoftKeyBoardChangeListener onSoftKeyBoardChangeListener) {
            this.onSoftKeyBoardChangeListener = onSoftKeyBoardChangeListener;
        }
    
        public interface OnSoftKeyBoardChangeListener {
            void keyBoardShow(int height);
    
            void keyBoardHide(int height);
        }
    
        public static void setListener(Activity activity, OnSoftKeyBoardChangeListener onSoftKeyBoardChangeListener) {
            SoftKeyBoardListener softKeyBoardListener = new SoftKeyBoardListener(activity);
            softKeyBoardListener.setOnSoftKeyBoardChangeListener(onSoftKeyBoardChangeListener);
        }
    }
    
    

    具体使用方法:

        SoftKeyBoardListener.setListener(getActivity(), new SoftKeyBoardListener.OnSoftKeyBoardChangeListener() {
                @Override
                public void keyBoardShow(int height) {
    
                    view.scrollTo(0,height);// 当然还有这行代码
                    ToastUtils.showToast(getActivity(), "显示" + height);
                    sendView.setVisibility(View.VISIBLE);
                    menuView.setVisibility(View.GONE);
                    topView.setVisibility(View.GONE);
    
    
                }
    
                @Override
                public void keyBoardHide(int height) {//803
    //                ToastUtils.showToast(getActivity(), "隐藏 " + height);
                    sendView.setVisibility(View.GONE);
                    menuView.setVisibility(View.VISIBLE);
                    topView.setVisibility(View.VISIBLE);
                    view.scrollTo(0,0);
                }
            });

     

    view.scrollTo(0,height);
    //view 最外层布局,需要调整的布局
    //scrollToView 被键盘遮挡的scrollToView,滚动root,使scrollToView在root可视区域的底部
    

    即可完美解决。

     

    展开全文
  • 最近项目在flutter混合开发时,表单页面软件盘调出时,底部的输入框遮挡,经过以下方法测试,已解决; 1–取消Scaffold的resizeToAvoidBottomPadding属性为false(该属性是控制界面内容 body是否重新布局来避免底部...
  •  输入密码时输入框被系统键盘遮挡了,大大降低了用户操作体验,这就是开发中非常常见的软键盘遮挡的问题,该如何解决? 二、简单解决方案 方法一  在你的activity中的oncreate中setContentView之前写上这个代码 ...
  • Android高级应用源码-android解决软键盘遮挡输入框的示例代码.rar
  • Android高级应用源码-android解决软键盘遮挡输入框的示例代码.zip
  • // An highlighted block <input type="text" value="" class="tinput" />; //针对直接在浏览器打开... // 软键盘弹起之后再调整滚动条位置 if ($(this).offset().top > document.body.scrollHeight / 2) {
      <input type="text" value="" class="tinput" />;
          //针对直接在浏览器打开此方法有效
          $(".tinput").bind("focus", function () {
            // 软键盘弹起之后再调整滚动条位置
            if ($(this).offset().top > document.body.scrollHeight / 2) {
              setTimeout(function () {
                window.scrollTo(0, document.body.scrollHeight);
              }, 500);
            }
          });
          //针对嵌入app页面用以下方法
          $(".tinput").focus(function (e) {
            var u = navigator.userAgent;
            var isAndroid = u.indexOf("Android") > -1 || u.indexOf("Adr") > -1; //android终端
            if (isAndroid) {
              $("body").height($("body").height() + 300);
              $("body").scrollTop(300);
            }
          });
          // 失去焦点时重新回到原来的状态
          $(".tinput").blur(function (e) {
            var u = navigator.userAgent;
            var isAndroid = u.indexOf("Android") > -1 || u.indexOf("Adr") > -1; //android终端
            if (isAndroid) {
              $("body").height($("body").height() - 300);
              $("body").scrollTop(0);
            }
          });
    
    // 苹果手机使用第三方输入法
      $(".tinput").on("focus", function () {
         var that = this;
            setTimeout(function () {
               that.scrollIntoView(true);
             }, 100);
       });
    
    
    展开全文
  • 一、问题概述 ... 输入密码时输入框被系统键盘遮挡了,大大降低了用户操作体验,这就是开发中非常常见的软键盘遮挡的问题,该如何解决? 二、简单解决方案 方法一  在你的activity中的oncreate中set
  • 本文主要为大家推荐一篇js解决软键盘遮挡输入框的问题分享,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧,希望能帮助到大家。经验须知弹出软键盘时:ios端$(‘body').scrollTop()会改变android...
  • <input type="text" value="" class="tinput"/> //针对直接在浏览器打开此方法有效 $('.tinput').bind('focus', ... // 软键盘弹起之后再调整滚动条位置 if ($(this).offset().top > document.body.s...
  • js解决软键盘遮挡输入框问题

    千次阅读 2018-01-16 15:43:05
    弹出软键盘时:  ios端$(‘body’).scrollTop()会改变android端$(window).height()会改变拉起键盘不是一瞬间,而是有一个缓动过程 问题重现 ios端,经常会出现输入法遮挡输入框的问题(特别是那种有一个...
  • 每次键盘遮挡输入框之后,必须要手动向上滑动一下屏幕才显示出来,这体验效果就很不好了吧。然后自己就尝试了各种方法,什么定时器、绝对定位、固定定位、计算屏幕高度再定位等等,都没有作用,键盘出来后还是会...
  • android解决软键盘遮挡输入框的示例代码.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
  • 在开发过程中,登录的时候常有点击Edittext隐藏上面内容的需求,本例子完美实现了通过重写Linearlayout此需求.
  • 背景: 安卓开发人员获取pda的响应事件(扫码),后端开发接口,前端进行 ...问题描述:移动端开发的时候,在登录界面,由于输入框在底部位置,点击以后,弹出输入法遮挡输入框,看不到输入的内容。 ...
  • 特别声明:原创文章,禁止转载。 1.安装scroll-into-view-if-needed npm i scroll-into-view-if-needed   2.封装指令 ...import { Directive, ElementRef, HostListener } from "...import scrollIntoView from...
  • 最近在开发android的项目,在项目开发中遇到各种坑,今天小编就给大家分享一个关于软键盘挡住输入框的问题,下面给大家介绍的非常详细,具有一定的参考借鉴价值,对软键盘挡住输入框的知识感兴趣的朋友一起看看吧
  • 解决安卓嵌套H5,软键盘遮挡输入框以及页面被华为、小米等底部导航栏遮挡问题
  • // 点击评论输入框 $(document).on("click", ".content_title", function () { // 使用定时器是为了让输入框上滑时更加自然 setTimeout(function(){ document.body.scrollTop = d...
  • 出现这样的问题,其实原因很简单,就是当前输入框未嵌入到context中,所以无法监听输入框的位置,从而键盘遮挡。下图为正确效果(图出自网络): 知道原因,解决自然也非常简单,根据场景是弹出弹框内的输入框...
  • 输入框用的div,fixed定位方式,当点击输入框弹出键盘时候,ios会出现软键盘挡住输入框的情况,网上找了一堆方法,总结起来是两种 1、scrollIntoViw()无效 2、document.body.scrollTop = document.body.scrollHeight...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,165
精华内容 866
关键字:

软键盘遮挡输入框

友情链接: mofsditelate.rar