Android Switch禁止手动切换状态

Android Switch禁止手动切换状态,第1张

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;
    }
}

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/992661.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存