美文网首页
spinner坑爹bug导致编辑框输入内容错乱到另外编辑框

spinner坑爹bug导致编辑框输入内容错乱到另外编辑框

作者: 吉凶以情迁 | 来源:发表于2021-11-08 15:39 被阅读0次

    编辑框冲突、 选择这个编辑框输入内容到了另外一个编辑框,有时候光标不闪烁,甚至键盘都无法弹出了!!!!!! 甚至有时候卡死无法返回退出
    有时候按返回关闭都无效,竟然是spinner导致的,spinner无数据的时候我点击了它,就出现了这个问题,我之前以为是某手机问题,坑爹!!!!!!!!!!!!!!!!!!!!!!!11
    这问题困惑我很久了,我以为是自定义编辑框有问题,各种排查好像问题依然存在,然后以为是databind问题又以为是lock databind标记问题,各种排除法,终于找到真凶!!!!!!!!
    这是我的解决办法,把所有spinner都给替换了

    
    /**
     * Author:Lozn
     * Email:qssq521@gmail.com
     * 修复为空点击了后导致卡死问题
     * 2021/11/8
     * 15:34
     */
    public class FixBugSpinner extends AppCompatSpinner {
        public FixBugSpinner(@NonNull Context context) {
            super(context);
        }
    
        public FixBugSpinner(@NonNull Context context, int mode) {
            super(context, mode);
        }
    
        public FixBugSpinner(@NonNull Context context, @Nullable AttributeSet attrs) {
            super(context, attrs);
        }
    
        @Override
        public boolean performClick() {
            if (emptyBreak(null)) {
                return true;
            }
            return super.performClick();
    
        }
    
        public FixBugSpinner(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
            super(context, attrs, defStyleAttr);
        }
    
        public FixBugSpinner(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int mode) {
            super(context, attrs, defStyleAttr, mode);
        }
    
        public FixBugSpinner(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int mode, Resources.Theme popupTheme) {
            super(context, attrs, defStyleAttr, mode, popupTheme);
        }
    
        @Override
        public boolean onTouchEvent(MotionEvent event) {
            if (emptyBreak(event)) {
                if (event != null && event.getAction() == MotionEvent.ACTION_DOWN) {
                    return true;
                }
                return false;
            }
            return super.onTouchEvent(event);
        }
    
        private boolean emptyBreak(MotionEvent event) {
            if (getAdapter() == null) {
                if (event!=null&&event.getAction() == MotionEvent.ACTION_DOWN) {
                    Toast.makeText(getContext(), "当前下拉列表无内容!", Toast.LENGTH_SHORT).show();
    
                }
                return true;
            }
            if (event!=null&&getAdapter().getCount() == 0) {
                if (event.getAction() == MotionEvent.ACTION_DOWN) {
                    Toast.makeText(getContext(), "当前下拉列表无内容", Toast.LENGTH_SHORT).show();
    
                }
                return true;
            }
            return false;
        }
    
        @Override
        public boolean dispatchTouchEvent(MotionEvent ev) {
          /*  if (emptyBreak()) {
                if(ev.getAction()==MotionEvent.ACTION_DOWN){
                    return true;
                }
                return true;
            }*/
            return super.dispatchTouchEvent(ev);
        }
    

    相关文章

      网友评论

          本文标题:spinner坑爹bug导致编辑框输入内容错乱到另外编辑框

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