Android開發(fā)之ViewPager+Fragment

使用步驟

  • 1、Activity的布局文件
<android.support.v4.view.ViewPager 
     android:id="@+id/viewpager"     
     android:layout_width="wrap_content"    
     android:layout_height="wrap_content"   
     android:layout_gravity="center" >  
 </android.support.v4.view.ViewPager>
  • 2、加載要顯示的Fragment,這里要注意,導(dǎo)入的全部是
    android.support.v4.app.Fragment,也就是v4兼容包下的Fragment類,至于為什么,看步驟3
Fragment1 f1 = new Fragment1();
Fragment2 f2 = new Fragment2();
Fragment3 f3 = new Fragment3();
fragmentContainter = new ArrayList<Fragment>();    
fragmentContainter.add(f1);
fragmentContainter.add(f2);
fragmentContainter.add(f3);
  • 3、用FragmentPagerAdapter關(guān)聯(lián)上面的Fragment和ViewPager,
    FragmentPagerAdapter (android.support.v4.app.FragmentPagerAdapter)
    繼承自 PagerAdapter。相比通用的 PagerAdapter,該類更專注于每一頁均為 Fragment 的情況。我們只需要實(shí)現(xiàn) getCount() 和 getItem()即可,從getItem()可以看出,它返回的是v4的Fragment,所以2中的問題答案就在這里了~~
pager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager())
        {

            @Override
            public int getCount()
            {

                return fragmentContainter.size();
            }

            @Override
            public android.support.v4.app.Fragment getItem(int arg0)
            {
                return fragmentContainter.get(arg0);
            }
        });

這樣就可以實(shí)現(xiàn)滑動(dòng)Fragment

重要的話

  • PageAdapter 是 FragmentPagerAdapter 以及 FragmentStatePagerAdapter 的基類,可以將上面的替換成FragmentStatePagerAdapter 。

  • FragmentStatePagerAdapter 和 FragmentPagerAdapter 的區(qū)別: FragmentPagerAdapter使用時(shí),每一個(gè)生成的 Fragment 都將保存在內(nèi)存之中,而 FragmentStatePagerAdapter 只保留了當(dāng)前顯示的Fragment,其他劃過的Fragment離開視線后,就會(huì)被銷毀;而在頁面需要顯示時(shí),再生成新的實(shí)例(可以通過打印Fragment的生命周期來查看,這里就不粘貼了)。這么實(shí)現(xiàn)的好處就是當(dāng)擁有大量的頁面時(shí),不必在內(nèi)存中占用大量的內(nèi)存。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容