我已经使用OnjectAnimator为ViewPager实现了平滑滚动动画。现在,我正在尝试对recyclerView执行相同的操作,但是滚动动画突然出现。这是我使用ObjectAnimator作为viewpager的动画。它产生一个快照动画来演示viewpager的滚动功能。
ObjectAnimator objectAnimator = ObjectAnimator
.ofFloat(new PagerHintMovement(-10, viewPager), "progress", -1f, 1f);
objectAnimator.setInterpolator(new AccelerateInterpolator());
objectAnimator.setDuration(1500);
objectAnimator.setRepeatCount(1);
objectAnimator.setRepeatMode(ValueAnimator.REVERSE);
objectAnimator.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
Log.i(TAG, "Animation: Starting fake drag on view pager.");
viewPager.beginFakeDrag();
}
@Override
public void onAnimationEnd(Animator animation) {
Log.i(TAG, "Animation: Ending fake drag on view pager.");
viewPager.endFakeDrag();
viewPager.setCurrentItem(viewPager.getCurrentItem());
}
@Override
public void onAnimationCancel(Animator animation) {
viewPager.setCurrentItem(viewPager.getCurrentItem());
}
@Override
public void onAnimationRepeat(Animator animation) {
if (VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN_MR2) {
if (animation.getInterpolator() instanceof AccelerateInterpolator) {
animation.setInterpolator(new DecelerateInterpolator());
} else {
animation.setInterpolator(new AccelerateInterpolator());
}
}
}
});
objectAnimator.setStartDelay(1000);
objectAnimator.start();
关于如何实现recyclerView的任何建议?
答案 0 :(得分:1)
如果您对默认的RecyclerView.smoothScrollToPosition(int)
不满意,则需要进行一些类替代。
通过调用
触发RecyclerView
中的平滑滚动
LayoutManager.startSmoothScroll(RecyclerView.SmoothScroller)
与其当前的layoutManager
。
您可以随意覆盖LayoutManager
并提供自定义RecyclerView.SmoothScroller
实现-最好扩展RecyclerView.LinearSmoothScroller
。
答案 1 :(得分:0)
如前所述,您需要平滑滚动,您可以按照以下步骤操作:
这将使您的回收站可平滑滚动并加载得体。