美文网首页
Android Switch禁止手动切换状态

Android Switch禁止手动切换状态

作者: Solang | 来源:发表于2022-12-14 11:35 被阅读0次

    Switch的原有特性导致在网络请求数据还未成功时,就已经切换了状态,可能与真实状态不符合,所以需要关闭手动切换的特性,使用clickable属性有点问题,能够手动滑动开关

    我的解决办法是拦截组件的触摸事件,并手动返回一个点击事件,就解决了手动点击开关导致的与真实数据不一致的问题

    public class MySwitch extends Switch {
        OnClickListener l;
     
        public MySwitch(Context context, AttributeSet attrs) {
            super(context, attrs);
        }
     
        @Override
        public boolean onTouchEvent(MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_UP)
                if (l != null)
                    l.onClick(this);
            return true;
        }
     
        @Override
        public void setOnClickListener(@Nullable OnClickListener l) {
            this.l = l;
        }
    }
    

    相关文章

      网友评论

          本文标题:Android Switch禁止手动切换状态

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