android – 嵌套的Viewpager Fragment没有初始化

android – 嵌套的Viewpager Fragment没有初始化,第1张

概述我有3个片段作为导航抽屉的一部分,其中一个包含一个viewpager.当我第一次加载应用程序时,viewpager会加载所有片段.但是,当我使用navi-drawer切换到另一个片段并切换回时,其中一个viewpager片段未加载.我已经尝试过代码 here和 here,但我无法提出解决方案. 在我的pageradapter代码中,在switch case中有不同的片段;我已经为该位置添加了一个日 我有3个片段作为导航抽屉的一部分,其中一个包含一个vIEwpager.当我第一次加载应用程序时,vIEwpager会加载所有片段.但是,当我使用navi-drawer切换到另一个片段并切换回时,其中一个vIEwpager片段未加载.我已经尝试过代码 here和 here,但我无法提出解决方案.

在我的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);}@OverrIDepublic 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;    }}@OverrIDepublic 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;}
解决方法
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);}@OverrIDepublic Fragment getItem(int position) {  //add new fragment here for homepage vIEwpagerLog.d("position",position+"");switch (position) {    case 0:        if(calorIE_fragment == null){        calorIE_fragment = new CalorIE_Fragment();        return calorIE_fragment;        }else {         return getCalorIE_fragment(); }             case 1:        if(heartRate_fragment == null){            heartRate_fragment = new HeartRate_Fragment();            return heartRate_fragment;}         else{ return getHRFragment();}    case 2:        if(steps_fragment == null){        steps_fragment = new Steps_Fragment();        return steps_fragment;        }        else{ return getSteps_fragment();}     default:        return null;}}@OverrIDepublic int getCount() {return 3;} public HeartRate_Fragment getHRFragment()  {  return heartRate_fragment;  }  public CalorIE_Fragment getCalorIE_fragment()  {  return calorIE_fragment;  }  public  Steps_Fragment getSteps_fragment()  {  return steps_fragment;  }

试试这个,确保你使用的是getChildFragmentManager();

总结

以上是内存溢出为你收集整理的android – 嵌套的Viewpager Fragment没有初始化全部内容,希望文章能够帮你解决android – 嵌套的Viewpager Fragment没有初始化所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1128103.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存