2014-07-19 104 views
8

我正在一個片段中實現尋呼機適配器。當我加載屏幕第一次,它工作正常。如果我切換到其他片段並再次轉到上一個片段,它將顯示空屏幕。如果我在不同的水龍頭之間滑動並再次移動到第一個選項卡,則會顯示數據。Android視圖尋呼機適配器顯示空屏幕

我想回到可見的標籤沒有加載數據,但是一旦它們在滑動導航期間不在視圖中,它將加載數據。

這是我的尋呼機適配器。

public class MyPagerAdapter extends FragmentPagerAdapter { 

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

@Override 
public Fragment getItem(int index) { 
    switch (index) { 
    case 0: 
     return new Fragment1(); 
    case 1: 
     return new Fragment2(); 
    case 2: 
     return new Fragment3(); 
    case 3: 
     return new Fragment4(); 
    case 4: 
     return new Fragment5(); 
    case 5: 
     return new Fragment6(); 
    } 

    return null; 
} 

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

}

我設置我的適配器這樣

viewPager = (ViewPager) rootView.findViewById(R.id.my_pager); 
     mAdapter = new MyPagerAdapter(getActivity().getSupportFragmentManager()); 
     viewPager.setAdapter(mAdapter); 
     actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);   
+0

[第二次查看時使用FragmentPagerAdapter的ViewPager中的碎片]的可能重複(http://stackoverflow.com/questions/7746652/fragment-in-viewpager-using-fragmentpageradapter-is-blank-the-第二次 - 是) – blahdiblah

回答

13

使用此,

public class MyPagerAdapter extends android.support.v4.app.FragmentStatePagerAdapter 
29

只是檢查,如果你正在使用getFragmentManager()初始化適配器,嘗試使用getChildFragmentManager()這樣的:

mAdapter = new MyPagerAdapter(getChildFragmentManager()); 
     viewPager.setAdapter(mAdapter); 
+4

我不能相信這個工作! Whyyyy?這些問題在Android中非常令人沮喪。 – Rui

+2

我可以解釋爲什麼它的工作? – Bruse

+0

這仍然有效... – haventchecked

0

我的ViewPager是在一個片段。 我通過將FragmentPagerAdapter更改爲FragmentStatePagerAdapter來解決此問題,並使用getFragmentManager()。 它工作正常;

0

使用FragmentStatePagerAdapter代替FragmentPagerAdapter

後您設置適配器

viewPager.setOffscreenPageLimit(6);\\ add the number of fragments you have 

這會記得在記憶的碎片,它絕不會顯示空白的屏幕加入這一行。

相關問題