簡體   English   中英

如何為ViewPager提供許多片段並避免錯誤代碼?

[英]How do I supply many Fragments to ViewPager and avoid bad code?

我有20個FragmentActivity,它們都代表着機制不同的游戲畫面。 我想將它們全部放在ViewPager中。 唯一想到的是這個偽代碼:

 public static class MyAdapter extends FragmentPagerAdapter {


    @Override
    public Fragment getItem(int position) {
        switch(position){
          case 0:
            return new Fragment1();
          case 1:
            return new Fragment2();
          .........................
          another 20 case statements here
          .........................
          case 20:
            return new Fragment21();
        }
    }

 }

但是應該有另一種方式來做到這一點。 將不勝感激任何幫助。

FragmentPagerAdapter非常聰明,無需在每次需要時都實例化片段。 這樣您的代碼就可以了。 也就是說,保存在內存中的20個片段可能有點過多。 看一看FragmentStatePagerAdapter ,它將自動保存和還原片段,而無需一直將它們保留在內存中。

您可以使用片段列表並從列表中返回,而無需使用switch

List<Fragment> fragments;

public Fragment getItem(int pos) {
  return fragments.get(pos);
}

public void addFragment(Fragment f) {
  fragments.add(f);
}

使用FragmentStatePagerAdapter而不是FragmentPagerAdapter

FragmentStatePagerAdapter使用ArrayList存儲片段,但是FragmentPagerAdapter使用getFragmentByTag

老實說,我認為這沒有什么錯,您會在很多游戲中看到類似的東西,例如菜單,游戲,暫停,游戲結束等屏幕。

我要說的是,每次更改到另一個頁面時,是否實際上需要創建一個“新”片段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM