片段页面适配器 - 只能调用Get Item一次

问题描述:

我在我的应用程序中设置了选项卡。我正在使用列表视图片段,每个片段都会调用下拉数据。片段页面适配器 - 只能调用Get Item一次

类似以下内容:

public Fragment getItem(int position) { 
      switch (position) { 
      case 0: 
       return FirstFragment.newInstance(); 
      case 1: 
       return FirstFragment.newInstance(); 
      case 2: 
       return SecondFragment.newInstance(); 
      default: 
       return null; 
      } 
     } 

它的工作很好,但我不希望呼叫发生的每一个标签被访问时,仅在第一次。

这样做的正确方法是什么?

+0

你在使用ViewPager吗? – Blackbelt

+0

是的,它默认存在于我的activity_main.xml – aherrick

+2

中,总是保留一个片段offscreen。你可以用setOffscreenPageLimit – Blackbelt

您可以随时在您的构造函数中的某处实例化这些片段,然后在getView(...)中传递对它的引用。

这里有一个例证:

public class YourPagerAdapter extends FragmentPagerAdapter { 

    YourFragment fragment1, fragment2, fragment3; 

    public YourPagerAdapter() { 
     fragment1 = YourFragment.newInstance(); 
     fragment2 = YourFragment.newInstance(); 
     fragment3 = YourFragment.newInstance(); 
     ... 
    } 

    public Fragment getItem(int position) { 
     switch (position) { 
     case 0: 
      return fragment1; 
     case 1: 
      return fragment2; 
     case 2: 
      return fragment3; 
     default: 
      return null; 
     } 
    } 

    ... 

} 

这样一来,你的片段将只得到了实例化一次 - 当你创建你的适配器。

更好的是,将这些片段包装在List中。这样你可以简化你的getItem(int position)return mFragments.get(position)

+0

完全合理,谢谢! – aherrick