2013-10-01 81 views
1

我正在使用onDraw()方法進行撥號。我有四個不同的片段,其中包含不同的圖表。我使用ViewPager在滑動模型中顯示圖形。ViewPager多次撥打電話 - Android

當我打電話給viewPager.getCount()它會被多次調用。後來我發現onDraw()方法在每次觸摸屏幕或當我滑動片段時都會調用。我真的很想知道爲什麼在使用ViewPager時多次調用片段。我沒有得到任何適當的解決方案,任何人都可以指導我如何限制多個呼叫getCount()或刷卡時調用片段。

+0

查看尋呼機總是一次尋找/加載2個頁面,即當你關注第一頁時,第二頁也是加載。因此,當您需要一次只加載一個片段時,請添加一個頁面偵聽器,並在頁面位置添加一個switch/if-else條件。 –

+0

感謝您的評論。你有這樣的樣品嗎 – RAAAAM

回答

2

試試這個, 添加mViewPager.setOnPageChangeListener(mPageLitsener);

而且 定義爲,

private ViewPager.OnPageChangeListener mPageLitsener = new ViewPager.OnPageChangeListener() { 
    @Override 
    public void onPageSelected(int position) { 
     switch (position) { 
      case 0: 
      ((FirstFragment)mViewPagerAdapter.getItem(0)).onUpdate(); 
      break; 

      case 1: 
      ((SecondFragment)mViewPagerAdapter.getItem(1)).onUpdate(); 
      break; 

      case 2: 
      ((ThirdFragment)mViewPagerAdapter.getItem(2)).onUpdate(); 
      break; 

      default: 
      ((FirstFragment)mViewPagerAdapter.getItem(0)).onUpdate(); 
      break; 
     } 
    } 

    @Override 
    public void onPageScrolled(int arg0, float arg1, int arg2) {} 

    @Override 
    public void onPageScrollStateChanged(int arg0) {} 
}; 

然後調用片段(即,onUpdate())內的公共方法,並定義爲你所需要的。

+0

非常感謝你,即時實施你發送的代碼。如果工作正常,我會接受你的答案。再次感謝。 – RAAAAM