在ProgresBar进度条Drawable变化之后,再调用setProgress(int, true)带有动画的方法会出现进度条回弹效果,如下gif所示
问题的原因是ProgressBar#mVisualProgress因使用mSecondaryProgress(未设置,所以值是0),
导致再调用setProgress(int progress, boolean animate),出现动画闪烁问题,理论应从当前进度到目标进度,实际上是0到目标进度。
解决方案,重新设置下不同进度即可:
int curProgress = getProgress();
setProgress(curProgress - 1);
setProgress(curProgress);