产品需求让在列表中加入滚动动画,仿照IOS效果,效果实现了,但是有个Bug,滚动到指定位置后,又滚回第一个位置了……
没想明白原因:
int startPosition=mListView.getFirstVisiblePosition();
final int endposition=msg.arg1;
if(startPosition ==0 || (startPosition!=elderPosition)){
if (startPosition == 0) {
// mListView.smoothScrollToPosition(1);//会引起回弹
startPosition += 1;
}
ValueAnimator anim = ValueAnimator.ofInt(startPosition,endposition);
anim.setDuration(300);
anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
mListView.setSelection((Integer) animation.getAnimatedValue());
if ((Integer) animation.getAnimatedValue() == endposition) {
elderPosition = mListView.getFirstVisiblePosition();
}
}
});
anim.start();