Closed ganchuanman closed 4 years ago
业务需要,SubSwitchButton extends SwitchButton做了一个简单的扩展:在super.onTouchEvent之前,如果SwitchButton被设置为不能点击,将TouchEvent的down事件做了个拦截然后埋点上报(问题和这个扩展操作应该是没有关系的),然后发现按钮只能拖动(SubSwitchButton未被设置为不可点击),点击的情况不好使,且拖动打开关闭也不太好使,最终定位到的原因是:android version < 8.1的情况下,大于等于8.1的时候是正常的,因为SwitchButton的setProgress的权限为private,导致SubSwitchButton通过ObjectAnimator操作progress属性变化失败,进而一系列重绘等操作都没起作用,可以考虑将set/getProgress的权限开放?本地通过源码依赖直接修改了set/getProgress的访问权限修饰符后问题得到了解决。
感谢反馈,问题已解决。请使用2.0.2版本。
解决方法是使用ValueAnimator替换ObjectAnimator;因为progress属于内部属性,并不希望暴露出来。
业务需要,SubSwitchButton extends SwitchButton做了一个简单的扩展:在super.onTouchEvent之前,如果SwitchButton被设置为不能点击,将TouchEvent的down事件做了个拦截然后埋点上报(问题和这个扩展操作应该是没有关系的),然后发现按钮只能拖动(SubSwitchButton未被设置为不可点击),点击的情况不好使,且拖动打开关闭也不太好使,最终定位到的原因是:android version < 8.1的情况下,大于等于8.1的时候是正常的,因为SwitchButton的setProgress的权限为private,导致SubSwitchButton通过ObjectAnimator操作progress属性变化失败,进而一系列重绘等操作都没起作用,可以考虑将set/getProgress的权限开放?本地通过源码依赖直接修改了set/getProgress的访问权限修饰符后问题得到了解决。