ViewPager 滑动的奇怪效果

Strange effect with ViewPager sliding

正如我在我的 post 的回答中所描述的 我在 ViewPager 的 3 个视图中的每一个上都有一个由 ViewPager 和 GridView 组成的自定义日历。

我创建了一个 "universal" InfinitePagerAdapter extends PagerAdapter。 我的 CalendarPagerAdapter 扩展了这个 InfinitePagerAdapter。

我为 3 个 GridView 中的每一个(3 个 ViewPager 页面中的每个页面一个)都有适配器

目前我有以下奇怪的效果:

  1. 我左右滑动(用手指),一切正常: 我滑动到的页面 (prev/next) 膨胀了,我在滑动过程中看到它很好。

但是:

  1. 在某个不确定的时刻,滑动看起来像这样: 我滑动到的页面(prev/next)没有膨胀,我在滑动过程中看到了白页。 滑动完成后页面膨胀就好了。

首先我认为 InfiniteViewPagerAdapter 中的 "pages trick" 不够快,例如如果滑动 "too fast" 几页等

但是如果我只是放置按钮 "prev"/"next" 并通过代码滚动 ViewPager,我会得到同样的效果: ViewPager.setCurrentItem(位置,真); 此命令后的每个幻灯片都有所描述的奇怪效果(不是膨胀的页面)。 我已经尝试 "force" 使每张幻灯片上的所有页面等无效,但现在什么都没有。

我找到了一个足以完成我的任务的简单解决方案:

刚开始设置适配器后,我将当前项设置为整数。MAX_VALUE/2

    pager.setAdapter(adapter);
    pager.setCurrentItem(Integer.MAX_VALUE / 2);

我放弃了重用保存在内存中的 3 个页面的视图的想法,所以我只是 1. 在 instantiateItem(...) 中创建视图 并将其添加到容器中:

view = inflateView(.....)
container.add(view)

2。在 destroyItem(...) 中将其从容器中移除 container.remove(查看)