2013-03-11 91 views
4

我是Android编程的新手,这是我在这个网站上的第一个问题。我花了很多时间寻找这个问题,但没有找到适合我的案例的答案。创建一个无限的ViewPager滚动在一个方向

我在ViewPager两页,一个用于电流,另一个用于下一个页面。当第二个片段显示时,我将其索引设置为0,删除第一个片段并创建一个新片段作为第二个片段的替换。这是我的代码。

mPager.setOnPageChangeListener(new OnPageChangeListener() { 

     @Override 
     public void onPageSelected(int pageSelected) { 
     } 

     @Override 
     public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 
      if (position == 1) { 
       currentQuestFr = nextQuestFr; 
       nextQuestFr = newQuest(); 
       mPager.setCurrentItem(0, false); 
       mPagerAdapter.notifyDataSetChanged(); 
      } 
     } 

     @Override 
     public void onPageScrollStateChanged(int state) { 

     } 
    }); 

和适配器

private class QuestPagerAdapter extends FragmentStatePagerAdapter { 

    public QuestPagerAdapter(FragmentManager fm) { 
     super(fm); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     if (position == 0) return currentQuestFr; 
     else return nextQuestFr; 
    } 

    @Override 
    public int getCount() { 
     return NUM_PAGES; 
    } 

    @Override 
    public int getItemPosition(Object object) 
    { 
     return POSITION_NONE; 
    } 
} 

代码工作很好,但notifyDataSetChanged()似乎刷新不需要的是我的观点。它有点让用户恼火。有没有什么办法刷新适配器,而不重画视图,或其他方式来达到相同的目的? 非常感谢

+0

你想它的方式,它应该首先加载所有数据,然后手动重绘的一些事件的看法工作?然后你可以使用 – 2013-05-03 04:39:38

回答

0

你想它的方式工作,它应该首先加载所有数据,然后手动重绘的一些事件的看法?然后你可以使用 mPager.setOffscreenPageLimit(N) 其中n是你在mPager页数。这将在加载时绘制所有页面。

相关问题