如何在ViewPager.PageTransformer.transformPage方法中检测到页面已完成滑动?

时间:2017-08-08 05:20:50

标签: android android-viewpager android-pagetransformer

此外,是否同时在传入和传出视图上调用transformPage方法?如何为左侧的传出视图制作动画,如何为右侧的传入视图制作动画?

1 个答案:

答案 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());