代码之家  ›  专栏  ›  技术社区  ›  Vinod Pattanshetti

当我从其他屏幕返回到ViewPager时,ViewPager完全是空白的,原因可能是什么?

  •  0
  • Vinod Pattanshetti  · 技术社区  · 8 年前

    这是我的ViewPagerAdapter,我正在其中设置所有三个片段选项卡 这是我的ViewPagerAdapter,我正在其中设置所有三个片段选项卡 如果有人帮我。 如果有人帮我。 如果有人帮我。

    public class ViewPagerAdapter extends FragmentStatePagerAdapter {
        String tabTitles[] = new String[] {"BELUM TERKIRIM", "TERKIRIM", "DIBATALKAN"};
        Context context;
        BelumTerkirim belumTerkiri = null;
        Terkirim terkirim = null;
        Dibatalkan dibatalkan = null;
    
        public ViewPagerAdapter(FragmentManager manager, Context context) {
          super(manager);
          this.context = context;
        }
    
        @Override
        public int getCount() {
          return tabTitles.length;
        }
    
        @Override
        public Fragment getItem(int position) {
          switch (position) {
            case 0:
              if(null == belumTerkirim)
                belumTerkirim = new BelumTerkirim();
              return belumTerkirim;
            case 1:
              if(null == terkirim)
                terkirim = new Terkirim();
              return terkirim;
            case 2:
              if(null == dibatalkan)
                dibatalkan = new Dibatalkan();
              return dibatalkan;
          }
          return null;
        }
    
        @Override
        public CharSequence getPageTitle(int position) {
          return tabTitles[position];
        }
    
        public View getTabView(int position) {
          View tab = LayoutInflater.from(PesananActivity.this).inflate(R.layout.custom_tab, null);
          TextView textView = (TextView) tab.findViewById(R.id.custom_text);
          textView.setText(tabTitles[position]);
          return tab;
        }
      } 
    
    2 回复  |  直到 8 年前
        1
  •  0
  •   SAVVY    8 年前

    试试这个

    ViewPager viewpager=null;
    

    然后按照你的方法

    viewpager =(ViewPager)findviewbyid(R.id.pager);
    FragmentManager fragmentmanager=getSupportFragmentManager();
    viewpager.setAdapter(new Myadapter(fragmentmanager);
    

    试试这个,让我知道

        2
  •  0
  •   Vinod Pattanshetti    7 年前

    错误的是,当我们从任何其他页面返回时,我并没有为每个片段创建新的实例,然后我们总是必须创建片段的实例。下面的代码对我有效。

    @Override
        public Fragment getItem(int position) {
          switch (position) {
            case 0: 
              return new BelumTerkirim();
            case 1:
              return new Terkirim();
            case 2:
              return new Dibatalkan();
            default:
            break;
          }
          return null;
        }