带有边距和页面转换器的 Fragment 内的 ViewPager 无法正确渲染

2024-03-28

我有一个viewpager,里面有片段。

我使用类似于例如

PageTransformer 转换中的 ViewPager 边距 https://stackoverflow.com/questions/19159243/viewpager-margin-in-pagetransformer-transformations

和填充,以便您可以看到当前正在查看的片段两侧的片段的淡出边缘。

但问题是当viewpager第一次启动时,两边的片段都没有淡出和缩小。

IE。我的ZoomOutPageTransformer 的transformPage 方法在您开始滑动之前不会被调用,因此初始的页外右/左或任何视图看起来错误的地方,然后在滑动完成后“跳转”到向右查看。

任何想法如何让它正确渲染,例如如果我打电话

ViewPager.setCurrentItem(1) - 或其他任何内容,侧面的页面将适当缩小。

如何让 viewpager 在创建时正确渲染,并将 ZoomoutPageTransformer 应用于“离屏”片段?


基本上,当您在视图寻呼机上使用填充和边距时,PageTransformer 的transformPage() 方法会返回错误的位置。 正如所述,似乎是一个框架错误here https://code.google.com/p/android/issues/detail?id=64046。 解决方法解释说这对我不起作用。

因此,我想出了另一个解决方案,只要将数据放在关联的适配器上,就在视图寻呼机上假装拖动。

private void invalidatePageTransformer(final ViewPager pager)
{
    new Handler().post(new Runnable() {
        @Override
        public void run() {
            //no need to invalidate if we have no adapter or no items
            if (pager.getAdapter() != null && pager.getAdapter().getCount() > 0)
            {
                //import check here, only fakeDrag if "beginFakeDrag()" returns true
                if (pager.beginFakeDrag())
                {
                    pager.fakeDragBy(0f);
                    pager.endFakeDrag();
                }
            }
        }
    });

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带有边距和页面转换器的 Fragment 内的 ViewPager 无法正确渲染 的相关文章

随机推荐