2015-07-03 59 views
1

在這裏,我有一個活動與ViewPager,它有4個選項卡,這裏是活動的屏幕截圖鏈接。如何解決這個問題,在viewpager覆蓋屏幕旋轉時,選項卡?

1

這裏是屏幕截圖片4,當屏幕是垂直的。 當活動打開時,我切換到第四個標籤,然後切換到第二個,旋轉屏幕,第四個標籤的一部分將疊加在第二個標籤上,但是當切換到第一個和第三個時,它贏得了'噸發生, 畫面是如下:

片4:

2

標籤1:

3

標籤2:

4

我怎麼可能已經解決了這個問題?

以下是viewpager的適配器:

public class MainPageFragmentPageAdapter extends FragmentPagerAdapter { 

SparseArray<Fragment> fragmentSparseArray = new SparseArray<Fragment>(); 

private Fragment currentSelectedFragment; 

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

@Override 
public Fragment getItem(int position) { 
    if (fragmentSparseArray.get(position) == null) { 
     Fragment fragment = null; 
     switch (position) { 
      case 0: 
       fragment = new NewHomePageFragment(); 
       break; 
      case 1: 
       fragment = new NewDiscoverFragment(); 
       break; 
      case 2: 
       fragment = new NewUserMessageFragment(); 
       break; 
      case 3: 
       fragment = new NewUserDetailFragment(); 
     } 
     fragmentSparseArray.put(position, fragment); 
    } 
    currentSelectedFragment = fragmentSparseArray.get(position); 
    return currentSelectedFragment; 
} 

@Override 
public void destroyItem(ViewGroup container, int position, Object object) { 
} 

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

public Fragment getCurrentSelectedFragment() { 
    return currentSelectedFragment; 
} 

} 

你想看到的任何代碼,請在下面發表評論。

+0

我發現這個問題是關於名爲destroyItem的方法,當我覆蓋此方法將是好的,但它會報告一個異常,id重複 –

+0

歡迎來到StackOverflow!我在你的問題中嵌入了你的圖片。請使用[編輯]按鈕來更正文字,以便您的問題按照您的要求進行描述。我不得不猜想你想要的圖像,因爲它不是很清楚。 –

+0

非常感謝你! –

回答

1

正如你所說的,當尋呼機是不可見你不destroyItem,所以它仍然會在內存中,並重繪

+0

絕對是! @lichangadd –

相關問題