我在片段中使用加载器,当加载完成后,我重新设置列表适配器的数据并使用ObjectAnimator开始动画。
我在onLoadFinished(Loader加载器,XXX数据)中编写了ObjectAnimator。
final ObjectAnimator anim = ObjectAnimator.ofInt(new AnimatedPointView(mTextView), "point", oldPoint, data.getPointBalance());
anim.setEvaluator(new TypeEvaluator<Integer>() {
@Override
public Integer evaluate(float fraction, Integer startValue, Integer endValue) {
if (BuildConfig.DEBUG) Ln.d("start="+startValue+", end="+endValue+", fraction="+fraction);
return startValue + Math.round(fraction * (endValue - startValue));
}
});
anim.setInterpolator(new LinearInterpolator());
anim.setDuration(5000);
但这不起作用,评估被调用两次,分数只有1.0f。
main start=113, end=103, fraction=1.0
main start=113, end=103, fraction=1.0
此动画代码适用于空白活动的onCreate。
任何建议和帮助都将不胜感激。
我为此添加了完整的示例代码。
如果我使用NineOldAndroids库,则不会发生这种情况。 这不仅发生在onLoadFinished方法中,而且发生在OnClickListner#onClick等其他地方。