1. 程式人生 > >在ViewPager中獲取Fragment

在ViewPager中獲取Fragment

用Fragment來填充ViewPager是,Fragment都是通過建立物件來新增到ViewPager中的,

        mFirstFrag = new FirstFragment(MainActivity.this);       
        mSecondFrag = new SecondFragment(MainActivity.this);         
        mThirdFrag = new ThirdFragment(MainActivity.this);
        FragmentPagerAdapter madapter = new FragmentPagerAdapter(getSupportFragmentManager()) {

            @Override
public int getCount() { return mLi.size(); } @Override public Fragment getItem(int arg0) { return mLi.get(arg0); } }; mLi.add(mFirstFrag); mLi.add(mSecondFrag); mLi.add(mThirdFrag); contentPager.setAdapter(madapter);

獲取當前展示的Frament的方法

int index = contentPager.getCurrentItem();
        switch (index) {
        case 0://索引為0的是第一個頁面,mFirstFrag是第一個頁面
            mFirstFrag.show(count);
            break;

        case 1:
            mSecondFrag.show(count);
        break;

        default:
            break;
        }

第二個問題是:viewPager的快取問題
當我們顯示第一個頁面的時候,第二個頁面就快取好了,但是當我們從第三個頁面切換到第一個頁面的時候,第一個頁面已經被銷燬了,這是後會重新載入,會呼叫Fragment的onCreateView方法,如果我們不想讓他重新載入怎麼辦呢?
contentPager.setOffscreenPageLimit(3);讓viewpager快取3個頁面