我有3 fragments part of a navigation drawer
,其中之一包含viewpager。當我第一次加載應用程序時,viewpager會加載所有的片段。但是,當我使用navi-drawer切換到另一個片段並切換回來時,其中一個viewpager片段未加載。我嘗試了代碼here和here,但我無法提出解決方案。嵌套的Viewpager片段沒有得到初始化
在我的pageradapter代碼中,在switch case中爲不同的片段;我已經爲這個位置放了一個日誌,並且在應用的初始加載之後,位置1似乎不會出現。
我的問題是,爲什麼第一個位置永遠不會被調用?有人可以向我解釋嗎?
這裏是我的Pageradapter代碼:
class PagerAdapter extends FragmentStatePagerAdapter {
static HeartRate_Fragment heartRate_fragment;
static Calorie_Fragment calorie_fragment;
static Steps_Fragment steps_fragment;
int num;
public PagerAdapter(Context context, FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
//add new fragment here for homepage viewpager
Log.d("position",position+"");
switch (position) {
case 0:
if(calorie_fragment == null)
calorie_fragment = new Calorie_Fragment();
Log.d("flip",0+"");
return calorie_fragment;
case 1:
if(heartRate_fragment == null)
heartRate_fragment = new HeartRate_Fragment();
Log.d("flip",1+"");
return heartRate_fragment;
case 2:
if(steps_fragment == null)
steps_fragment = new Steps_Fragment();
Log.d("flip",2+"");
return steps_fragment;
default:
return null;
}
}
@Override
public int getCount() {
return num;
}
public HeartRate_Fragment getHRFragment()
{
return heartRate_fragment;
}
public Calorie_Fragment getCalorie_fragment()
{
return calorie_fragment;
}
public Steps_Fragment getSteps_fragment()
{
return steps_fragment;
}
你想開第二個片段上刷卡? –
我的homefragment已經包含一個viewpager。該viewpager包含3個片段。那第二個沒有被初始化。第一和第三是。 –
你是如何檢查它? –