我最近用 替换了我ViewPager
的ViewPager2
,但是,滑动页面时的动画看起来像是机器人和非线性的,不像旧的动画更流畅。有什么办法可以找回旧的吗?
问问题
571 次
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 回答