kyleduo / SwitchButton

A cute widget of Switch Button for you to create beautiful and friendly UI.
4.72k stars 866 forks source link

有没有方法判断按钮是用户点击发生改变还是用代码设置发生变化的,我的compoundButton.isPressed()一直为false #103

Closed woshiqinwei closed 3 years ago

kyleduo commented 7 years ago

你想实现什么效果?

woshiqinwei commented 7 years ago

如果是点击就触发状态改变的逻辑,如果是代码控制开关的话 就不触发改变的逻辑

kyleduo commented 7 years ago

setCheckedNoEvent方法可以不触发事件。

HalyangDream commented 4 years ago

setCheckedNoEvent方法可以不触发事件。

想知道在回掉onCheckedChanged 如何判断是否是手指进行的按压操作

benben1 commented 4 years ago

目前也遇到了这个问题,不知道有什么好的解决办法吗

zuilintan commented 3 years ago

image 原因是ACTION_UP时, setPressed(false)调用早于setChecked(nextStatus), 所以OnCheckedChangeListener回调时, buttonView.isPressed()始终为false, 即便是fromUser

zuilintan commented 3 years ago

可以将源码Clone到本地, 末置其调用时机重新打包引入解决

zuilintan commented 3 years ago

setCheckedNoEvent方法可以不触发事件。

的确, 这是种方案, 不过一家人就要整整齐齐吗, 特地试了下原生Switch, 其OnCheckedChangeListener()中的buttonView.isPressed()是可以正常区分fromUser的, 可以的话, 还是建议直接将这个修改同步一下哈