设置查看寻呼机当前项目时闪烁的页面标签条

时间:2014-08-14 15:14:55

标签: android android-viewpager pagerslidingtabstrip

我有一个无限滚动的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);
    }
}

1 个答案:

答案 0 :(得分:0)

遇到了同样的问题,在我的情况下,我有两个几乎相同的类,这个问题只在一个案例中,在另一个案例中,一切都很好。没有找到关于为什么会发生这种情况的线索,但在这里的评论中发现了一个黑客: http://thehayro.blogspot.ru/2013/09/infiniteviewpager-infinite-paging.html 简而言之: