此外,是否同时在传入和传出视图上调用transformPage方法?如何为左侧的传出视图制作动画,如何为右侧的传入视图制作动画?
答案 0 :(得分:-1)
是的,同时在视图上调用transformPage方法。您将在transformPage方法的第一个参数中获取当前视图实例。
public void transformPage(View view, float position) {...}
第二个参数是视图的位置。如文档中所述
页面相对于当前前端和中心的位置 *寻呼机的位置。 0是正面和中心。 1是一个完整的 *页面位置在右侧,-1是左侧的一页位置。
可以使用以下代码
应用简单的FadIn和FadOut转换public class MyFadePageTransformer implements ViewPager.PageTransformer {
public void transformPage(View view, float position) {
//You can set Tag to view object and getTag to know current view
//Log.d("Page Transform", "page " + view.getTag().toString());
if (position < -1 || position > 1) {
view.setAlpha(0);
}
else if (position <= 0 || position <= 1) {
// Calculate alpha. Position is decimal in [-1,0] or [0,1]
float alpha = (position <= 0) ? position + 1 : 1 - position;
view.setAlpha(alpha);
}
else if (position == 0) {
view.setAlpha(1);
}
}
}
然后将PageTransformer添加到ViewPager
mViewPager.setPageTransformer(false, new MyFadePageTransformer());