首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android ViewPager手动调用PageTransformer transformPage

Android ViewPager手动调用PageTransformer transformPage
EN

Stack Overflow用户
提问于 2015-06-16 20:39:47
回答 2查看 4.3K关注 0票数 10

我有一个带有PageTransformer实现的ViewPager,它对ViewPager的下一页做了一些时髦的事情。我的实现如下所示:

代码语言:javascript
复制
class ZoomOutPageTransformer implements ViewPager.PageTransformer {
private static final float MIN_SCALE = 0.85f;
private static final float MIN_ALPHA = 0.5f;

@Override
public void transformPage(View view, float position) {
    int pageWidth = view.getWidth();

    if (position < -1) { // [-Infinity,-1)
        // This page is way off-screen to the left.
        view.setAlpha(0);

    } else if (position <= 0) { // [-1,0]
        // Use the default slide transition when moving to the left page


    } else if (position < 1) { // (0,1]
      do some funky stuff to the page currently being scrolled into the main view on scrolling left


    } else if (position==1) {
       do some funky stuff to the next page
    }

    else { // (1,+Infinity]
        // This page is way off-screen to the right.
        view.setAlpha(1);
    }
}

}

问题是,这些变换动画在分页程序加载后立即可用,但在我的视图分页程序的第一个片段中不可用。即,第一次加载片段时,不会调用transformPage方法。有没有办法手动调用transformPage方法?例如,当我在onCreateView中设置我的ViewPager时?还是别的地方?

EN

回答 2

Stack Overflow用户

发布于 2016-10-04 02:25:40

我遇到了类似的情况,我最终使用了一个假的拖动来引起最初的变换:

代码语言:javascript
复制
public void onResume() {
    ...
    Handler handler = new Handler();
    final Runnable r = new Runnable() {
        public void run() {
            // force transform with a 1 pixel nudge
            mViewPager.beginFakeDrag();
            mViewPager.fakeDragBy(1.0f);
            mViewPager.endFakeDrag();
        }
    };
    handler.postDelayed(r, 10);  // some small delay in ms
}
票数 8
EN

Stack Overflow用户

发布于 2016-03-22 19:52:11

根据Android开发人员的网站:

每当滚动可见/附加的页面时,都会调用PageTransformer。这为应用程序提供了一个使用动画属性将自定义转换应用于页面视图的机会,因此,当第一次加载页面导航器时,您将看不到任何过渡动画。

这是你一直在使用的一个很好的技巧,但我不知道你是否已经尝试过,但你能在第一次加载时将viewpager作为一个整体进行动画处理吗?

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30867854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档