我可以使用ObjectAnimator为viewPager的currentItem属性设置动画吗?我已经尝试了以下代码,但根本无法正常工作。
ObjectAnimator animator= ObjectAnimator.ofInt(viewPager, "currentItem", currentQuestionIndex); animator.setDuration(1000).start();
第三个参数仅仅是整数类型的变量,它跟踪当前页面索引。
我的想法是当用户按下按钮时在viewPager的不同页面上滑动。但我只是无法使它工作:(
我想使从一页到另一页的转换(当按下一个按钮调用setCurrentItem方法时)要慢一些,以便用户可以看到加载的不同页面。
换句话说,我希望页面进行动画处理,就像用户滑动viewPager一样,而不是按下按钮时导致的快速默认动画。
答案 0 :(得分:0)
您可以使用ViewPager.PageTransformer
对页面进行滚动动画处理,有一种方法可以实现此目的:
@Override
public void transformPage(@NotNull View view, float position) {
//Consider animating view here
if (position >= -1 && position <= 1) {
// Animate for current view
} else {
// Animate view off the screens
}
}
用法类似:
viewpager.setPageTransformer(true, [Your view pager transformer here]);
答案 1 :(得分:0)
尝试this example创建自定义ViewPager以减慢页面更改动画的持续时间。
然后在更改页面时使用viewPager.setPageTransformer(true, new SampleTransformation());
设置页面更改动画。将SampleTransformation()
替换为您选择的one of these PageTransformer个动画。
答案 2 :(得分:0)
正如@wojciech_maciejewski在评论部分中提到的那样,他提供的link在很大程度上解决了这个问题。