【问题标题】:Flickering page tab strip when setting view pager current item设置查看寻呼机当前项目时闪烁的页面标签条
【发布时间】:2014-08-14 15:14:55
【问题描述】:

我有一个无限滚动的 ViewPager。为此,我有 5 个项目 (0,1,2,3,4)。休息时,我总是在tab 2。onPageScrollStateChanged 返回 SCROLL_STATE_IDLE 后,我更新数据源将当前项放在位置 2,然后将 ViewPager 的当前项设置为 2,如下所示:

    @Override
    public void onPageScrollStateChanged(int state) {
        if (state == ViewPager.SCROLL_STATE_IDLE) {
            populateForecastFragmentsArray();
            mPager.setCurrentItem(CENTER_PAGE_INDEX, false);
        }
    }

这非常适合获得我正在寻找的无限滚动,但是,每次调用 setCurrentItem() 时,PagerTabStrip 都会闪烁。

是否有另一种方法可以在不使用 setCurrentItem 的情况下设置当前项目?有没有更好的方法来处理无限滚动?

我已经确定闪烁发生在 setCurrentItem 期间,而不是 populateForecastFragmentsArray(),但为了完整起见,这里是 populateForecastFragmentsArray() 的代码:

public void populateForecastFragmentsArray () {
    mForecastFragmentArrayList.clear();
    for (int i = 0; i < mPageAdapter.getCount(); i++) {
        ForecastFragment fragment = new ForecastFragment();
        int offset = i - CENTER_PAGE_INDEX;
        fragment.calendar = (Calendar)mDisplayedDate.clone();
        fragment.calendar.add(Calendar.DAY_OF_YEAR, offset);

        mForecastFragmentArrayList.add(fragment);
    }
}

【问题讨论】:

    标签: android android-viewpager pagerslidingtabstrip


    【解决方案1】:

    遇到了同样的问题,在我的情况下,我有两个几乎相同的课程,而这个问题只是在一种情况下,在另一种情况下一切正常。没有找到任何关于为什么会发生这种情况的线索,但在这里发现了 cmets 中的一个 hack: http://thehayro.blogspot.ru/2013/09/infiniteviewpager-infinite-paging.html 简而言之:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多