【问题标题】:Strange effect with ViewPager slidingViewPager 滑动的奇怪效果
【发布时间】:2020-03-24 03:27:26
【问题描述】:

正如我在我的帖子的答案中所描述的 GridView animated HORIZONTAL sliding 我在 ViewPager 的 3 个视图中的每一个上都有一个由 ViewPager 和 GridViews 组成的自定义日历。

我创建了一个“通用”InfinitePagerAdapter 扩展了 PagerAdapter。 我的 CalendarPagerAdapter 扩展了这个 InfinitePagerAdapter。

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

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

  1. 我左右滑动(用手指),一切都很好: 我滑动到的页面(上一个/下一个)被夸大了,我在滑动过程中看到它很好。

但是:

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

首先我认为我在 InfiniteViewPagerAdapter 中的“页面技巧”不够快,例如,如果滑动“太快”几页等。

但如果我只是放置按钮“prev”/“next”并通过代码滚动 ViewPager,我会得到相同的效果: ViewPager.setCurrentItem(position, true); 此命令之后的每个幻灯片都有描述的奇怪效果(不是膨胀的页面)。 我试图“强制”使每张幻灯片上的所有页面都无效等,但现在什么都没有。

【问题讨论】:

    标签: android android-viewpager


    【解决方案1】:

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

    在设置适配器后的一开始,我将当前项目设置为 Integer.MAX_VALUE/2

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

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

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

    2。将其从 destroyItem(...) 中的容器中删除 container.remove(视图)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多