2015-12-21 44 views
1

我已經爲三個選項卡創建了三個不同片段的滑動選項卡。所有這三個標籤都從webservice獲取動態數據。在加載時,我的第一個選項卡Tab1顯示了Tab2數據。 FragmentPagerAdapter中的getItem方法被調用兩次。片段選項卡適配器getItem調用兩次

@Override 
    public Fragment getItem(int arg0) { 

     switch (arg0) { 
      case 0: 
       return new Tab1; 
      case 1: 
       return new Tab2; 
      case 2: 
       return new Tab3; 
      default: 
       break; 
     } 

我怎樣才能加載片段只有當加載Tab1時。

+0

這是預期的行爲。 ViewPager緩存了一個額外的頁面 – Blackbelt

+0

,這沒關係。你應該改變你的邏輯來處理這個問題。 –

+0

我的Tab1正在顯示Tab2數據。任何可能的方式tab1顯示正確的數據,即使額外的頁面被緩存 – nehaR

回答

0

我怎樣才能加載片段之一,只有當Tab1加載。

你不能。

我相信你正在使用ViewPager。這是調用getItem()兩次的原因。這是ViewPager的工作原理。它加載前一個片段,當前片段和下一個片段,使您可以在頁面之間平滑滾動。

在你的情況你是如此TAB1第一和第二頁面加載(前一頁未加載,因爲它不存在)

當您從TAB1滾動到TAB2 - TAB3將被加載等等

您可以設置使用ViewPager.setOffscreenPageLimit左右移動多少製表符,但最小值爲1,也是默認值。

+0

是的,我已經使用ViewPager。但是我的Tab1沒有顯示它的數據。它顯示Tab2數據。任何解決方案。 – nehaR