当我像这样设置选中状态时,我禁用了动画,它正在工作:
switchView.isChecked = state.isChecked
switchView.jumpDrawablesToCurrentState()但是当我点击SwitchCompat视图时,动画就开始工作了。如何在单击时禁用SwitchCompat动画?
发布于 2021-04-21 04:05:07
这个问题没有确切的解决方案。你可以找到here的原因。但我们可以使用一些老生常谈的解决方案。看一下这个answer和自定义SwitchCompatFix.java类。
为了使两个私有方法可访问,这里使用了Java反射。Letter,这些方法已用于在触发时取消动画。您可以使用该Custom Switch类和下面的代码来实现所需的功能。
switchCompatFix = findViewById(R.id.switchCompatFix);
switchCompatFix.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
if(motionEvent.getAction() == MotionEvent.ACTION_DOWN){
if(!switchCompat.isChecked()) {
switchCompat.setChecked(true, false);
}else {
switchCompat.setChecked(false, false);
}
}
return true;
}
});通过从onTouch()方法返回true,触摸侦听器将不会到达父SwitchComapt类。
https://stackoverflow.com/questions/67184028
复制相似问题