2

我最近用 替换了我ViewPagerViewPager2,但是,滑动页面时的动画看起来像是机器人和非线性的,不像旧的动画更流畅。有什么办法可以找回旧的吗?

4

2 回答 2

1

好吧,开发人员指南肯定会向您展示如何viewpager在您的代码中实现,但为了让您的动画效果更流畅,请尝试实现以下代码。

public class ParallaxPageTransformer implements ViewPager.PageTransformer {

        public void transformPage(View view, float position) {

            int pageWidth = view.getWidth();


             if (position < -1) { // [-Infinity,-1)
                    // This page is way off-screen to the left.
                    view.setAlpha(1);

                } else if (position <= 1) { // [-1,1]

                    dummyImageView.setTranslationX(-position * (pageWidth / 2)); //Half the normal speed

                } else { // (1,+Infinity]
                    // This page is way off-screen to the right.
                    view.setAlpha(1);
                }


        }
    }

这将为您提供这样的动画:

在此处输入图像描述

您还可以浏览以下链接,这将在这方面为您提供更多帮助:

http://andraskindler.com/blog/2013/create-viewpager-transitions-a-pagertransformer-example/

http://developer.android.com/training/animation/screen-slide.html#pagetransformer

于 2019-11-26T22:40:30.767 回答
0

在 ViewPager2 中自定义动画的规范方法似乎是通过PageTransformer。不包含直接替换,但您可以创建自己的转换:

class MyPageTransformer : ViewPager2.PageTransformer {
  override fun transformPage(view: View, position: Float) {
    // position is the offset from center, negative being left
    // make changes to view based on pages position
    // e.g. view.alpha = min(0f, 1f - abs(position))
  }
}

...

viewPager.setPageTransformer(MyPageTransformer())

请参阅ViewPager2 转换的开发人员指南中的示例。

于 2019-11-21T18:22:19.027 回答