【发布时间】:2017-08-08 05:20:49
【问题描述】:
此外,transformPage 方法是否同时在传入和传出视图上调用?如何为左侧的传出视图制作动画,为右侧的传入视图制作动画?
【问题讨论】:
标签: android android-viewpager android-pagetransformer
此外,transformPage 方法是否同时在传入和传出视图上调用?如何为左侧的传出视图制作动画,为右侧的传入视图制作动画?
【问题讨论】:
标签: android android-viewpager android-pagetransformer
是的,transformPage 方法同时在两个视图上调用。您在 transformPage 方法的第一个参数中获取当前视图实例。
public void transformPage(View view, float position) {...}
第二个参数是视图的位置。如文档中所述
相对于当前前端和中心的页面位置 * 寻呼机的位置。 0 是前面和中间。 1 是一满 * 页面位置向右,-1 为向左一页位置。
可以使用以下代码应用简单的淡入淡出转换
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());
【讨论】: