標籤:code 需要 fragment viewpager port tco osi android 預設
這一節介紹使用FragmentPagerAdapter適配器,來載入Fragment對象。
資料來源
載入Fragment對象時,資料來源自然來自Fragment,與View類似,依舊使用List來存放資料來源
fragmentList=new ArrayList<>();
fragmentList.add(new Fragment1());
fragmentList.add(new Fragment2());
fragmentList.add(new Fragment3());
fragmentList.add(new Fragment4());
適配器
與PagerAdapter類似,FragmentPagerAdapter也可以通過建立子類的形式,重寫方法,來實現對資料來源的處理。相比較之下FragmentPagerAdapter只需重寫getCount方法和getItem方法即可。與之相對應的另一個適用於Fragment的適配器為FragmentStatePagerAdapter,他需要重載instantiateItem和destoryItem方法,但只需要預設重載即可。
public class MyFragmentAdapter extends FragmentPagerAdapter { private List<Fragment> fragmentList; public MyFragmentAdapter(FragmentManager fm,List<Fragment> fragmentList) { super(fm); this.fragmentList=fragmentList; } @Override public Fragment getItem(int position) { return fragmentList.get(position); } @Override public int getCount() { return fragmentList.size(); }}
ViewPager與適配器關聯
只需要在Activity中,執行個體化適配器和ViewPager控制項,並用setAdapter方法關聯即可。
pager= (ViewPager) findViewById(R.id.pager);
MyFragmentAdapter myadapter =new MyFragmentAdapter(getSupportFragmentManager(),fragmentList);
pager.setAdapter(myadapter);
Android學習——ViewPager的使用(一)