我有三个导航抽屉的片段,其中一个包含一个viewpager。当我首次加载应用程序时,viewpager会加载所有片段。然而,当我使用navi-drawer切换到另一个片段并返回时,其中一个viewpager片段没有加载。我尝试了这里和这里的代码,但是我无法找到解决方案。
在我的pageradapter代码中,对于不同片段的switch case,我放置了一个位置日志,并且在应用程序的初始加载之后似乎没有出现位置1。
我的问题是,为什么位置1从未被调用?有人能解释一下吗?
这是我的Pageradapter代码:
在我的pageradapter代码中,对于不同片段的switch case,我放置了一个位置日志,并且在应用程序的初始加载之后似乎没有出现位置1。
我的问题是,为什么位置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;
}