ViewPager使用詳解(四):總結

了解了與ViewPager配合使用的PagerAdapterFragmentPagerAdapterFragmentStatePagerAdapter后,那么應該使用哪個Adapter?

ViewPager展示的單頁面業務邏輯偏少,主要用于展示信息,則只需要使用PagerAdapter來展示即可。

例如圖片列表的大圖顯示,單頁面都只需要一個ImageView,而對單項進行操作的業務邏輯都是一致的,只需要放置在Activity中進行處理即可。

如果ViewPager展示的單頁面業務邏輯偏多,這時候使用Fragment來分離業務邏輯,則可以使結構清晰,代碼簡潔,并且提高代碼重用性。

FragmentPagerAdapterFragmentStatePagerAdapter的差別,主要在于后者內部對于Fragment進行狀態保存和重用,并且及時回收UI,減少了內存的消耗。

ViewPager展示的頁面數量較少或者頁面數據量偏少時,可以使用FragmentPagerAdapter,并且結合ViewPagersetOffscreenPageLimit方法,來避免重新創建Fragment的問題。

Fragment數量偏多,或者Fragment包含較多的數據展示時,使用FragmentStatePagerAdapter則更為合適。使用FragmentStatePagerAdapter時,需要注意的是,當Fragment超出ViewPager預加載的范圍而被移除時,需要在onSaveInstanceState方法中保存好數據,并且在onCreateViewonViewCreatedonViewStateRestored方法中進行恢復,避免過多的數據讀取操作。

示例地址:https://git.oschina.net/kycqdhl3c/BSViewPager.git

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容