此外,是否同时在传入和传出视图上调用 transformPage 方法?如何为左侧的传出视图制作动画,为右侧的传入视图制作动画?
问问题
611 次
1 回答
-1
是的,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());
于 2017-08-08T07:33:05.870 回答