在RecyclerView水平滚动上用动画刷ViewPager-Android

时间:2019-01-31 05:07:13

标签: android android-recyclerview android-viewpager android-animation

我正在开发一个Android应用,其中顶部有一个ViewPager,而在RecyclerView下面有一个水平ViewPager

当我滚动RecyclerView时,我正在用ViewPager更新viewPager.setCurrentItem(position)项目。这样ViewPager就会滑动到该位置。

工作正常。但是ViewPager不会随动画滑动。它只会移动到当前位置。

我想在滑动ViewPager滚动上的RecyclerView时应用一些动画。如何实现这种动画行为?

2 个答案:

答案 0 :(得分:1)

尝试

viewPager.setCurrentItem(position, true)

作为每documentation of the ViewPager,它允许移动到该位置的顺利进行。

答案 1 :(得分:0)

我认为您想对动画使用淡入效果。 您应该将此类导入文件...

public class FadePageTransformer implements ViewPager.PageTransformer {
    @Override
    public void transformPage(@NonNull View page, float position) {
        page.setTranslationX(page.getWidth() * -position);
        if (position <= -1.0F || position >= 1.0F) {
            page.setAlpha(0.0F);
        } else if (position == 0.0F) {
            page.setAlpha(1.0F);
        } else {
            // position is between -1.0F & 0.0F OR 0.0F & 1.0F
            page.setAlpha(1.0F - Math.abs(position));
        }
    }
}

在包含该类之后,您需要像这样设置视图寻呼机...

viewPager.setPageTransformer(false,new FadePageTransformer());

它将帮助您在视图寻呼机中实现动画效果