学习之鸿蒙&Android学习android技术

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

2021-06-14  本文已影响0人  itfitness

目录

效果展示

未处理之前:



处理后:


关键代码

这里主要时对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

上一篇下一篇

猜你喜欢

热点阅读