跳到主要內容

發表文章

目前顯示的是 2月, 2016的文章

在 Fragment 裡使用 ViewPager 搭配 FragmentPagerAdapter

        Fragment 是個強大的東西,可以想成 Activity 的子頁面,可隨時替換頁面內容(但使用起來還滿麻煩的…)。這麼強大的東西,在 ViewPager 當然也會提供 Fragment 的版本。在 官方文件 就有一個 PagerAdapter 的實作: FragmentPagerAdapter ,可以用 Fragment 來當成每個 ViewPager 的子頁。 FragmentPagerAdapter  的官方文件中也有提供 sample code。         但我自己參考 sample code 寫出來的效果卻怪怪的,ViewPager 裡子頁面的 lifecycle 竟然沒有跟著父 Fragment ,看起來比較像是跟著 Activity。仔細看 sample code 才發現,它是在 Activity 裡使用 ViewPager +  FragmentPagerAdapter 。那要如何使用在 Fragment 呢?         其實只要改一行 code 就可以了。 sample code 裡的 mAdapter = new MyAdapter(getSupportFragmentManager()); 只要改成 mAdapter = new MyAdapter( Fragment . getChildFragmentManager() ); 就可以囉 ~~         由於  getChildFragmentManager() 是   api level 17+ 才有的東西,而 Fragment 是 11+ 才有,不想定太高的 api level 可以使用 support v4 library,怎麼使用就不多說啦。 參考資料: support v4 Fragment: http://developer.android.com/intl/zh-tw/reference/android/support/v4/app/Fragment.html support v4  FragmentPagerAdapter: http://developer.android.com/intl/zh-w/reference/android/support/v4/app/FragmentPagerAdapter.h