使用非support v4的Fragment放在ViewPager裡該注意的事

ViewPager算是在Android很常見且相當實用的設計,如果要將ViewPager裡面的每個頁面都是使用Fragment的話,則需要再搭配FragmentPagerAdapter使用,透過FragmentPagerAdapter去分配與生成每個滑動頁裡面的Fragment

早期Android官方為了能夠讓Fragment可以支援Android 3.0以下的版本,所以發展了support v4的Fragment版本,也因此早期的FragmentPagerAdapter是support v4的版本。

加上要生成Fragment需要FragmentManager,所以如果Fragment使用support v4版本的話,連帶的FragmentManager也是只能使用support v4的版本,於是早期在FragmentPagerAdapter整套的import如下:
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

時至今日,許多的app開發版本都已經限制Android 4.0以上的手機才能安裝了,所以如果app沒有要支援Android 3.0以下的手機,就可以使用一般的Fragment了

這個時候只要把Fragment及FragmentManager在import的地方把.support.v4拿掉就能改為一般的版本,再將原本的FragmentPagerAdapter從support.v4改為support.v13就可以使用,或是在一開始新增FragmentPagerAdapter時就直接繼承v13的版本

所以新版的寫法可以改為:
import android.app.Fragment;
import android.app.FragmentManager;
import android.support.v13.app.FragmentPagerAdapter;

留言

這個網誌中的熱門文章

Mac安裝JDK後仍出現沒有runtime的錯誤 No Java runtime present, requesting install

Android使用Callback做為傳遞資料/通知的方法

如何實作從API抓取資料顯示在列表頁(ListView)上