2013-03-11 75 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頁數。這將在加載時繪製所有頁面。

相關問題