美文网首页学习之鸿蒙&Android学习android技术
Android解决EditText编辑内容多时上下滑动不流畅的问

Android解决EditText编辑内容多时上下滑动不流畅的问

作者: itfitness | 来源:发表于2021-06-14 21:28 被阅读0次

    目录

    效果展示

    未处理之前:



    处理后:


    关键代码

    这里主要时对EditText的触摸事件进行了监听,当手指在EditText上滑动的时候阻止父层的View截获Touch事件并且让EditText不可获取焦点,阻止父层View获取Touch事件是为了防止手指滑动的时候带动父控件也滑动,而不让EditText获取焦点是为了防止进入编辑模式,进入编辑模式EditText滑动起来就会有卡顿的感觉,滑动完了之后当手指抬起的时候要恢复父控件获取Touch事件的能力同时也要让EditText获取焦点好进行编辑,具体代码如下:

    et_content.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent motionEvent) {
                    v.getParent().requestDisallowInterceptTouchEvent(true);
                    switch (motionEvent.getAction() & MotionEvent.ACTION_MASK) {
                        case MotionEvent.ACTION_MOVE:
                            et_content.setFocusable(false);
                            break;
                        case MotionEvent.ACTION_UP:
                            et_content.setFocusable(true);
                            et_content.setFocusableInTouchMode(true);
                            v.getParent().requestDisallowInterceptTouchEvent(false);
                            break;
                    }
                    return false;
                }
            });
    

    特别注意

    如果当前页面有其他的EditText控件的话在滑动事件的处理中需要将其他EditText控件的焦点一同屏蔽了,否则会抢夺焦点。

    案例源码

    https://gitee.com/itfitness/edit-text-scroll-demo

    相关文章

      网友评论

        本文标题:Android解决EditText编辑内容多时上下滑动不流畅的问

        本文链接:https://www.haomeiwen.com/subject/cogoeltx.html