你的ViewPager需要升級了!!

前言

做android開發的同學,基本上都會用到ViewPager,比如Banner、TabPage等常用場景。

但是,也發生過很多不愉快。

比如:

  1. ViewPagerAdapter的刷新問題(由於銷燬導致)
  2. ViewPager子元素少於3的bug
  3. 無線循環空白問題
  4. 動態修改子元素

總之,如果要用ViewPager去實現很多產品的需求,一不小心就調入坑中。

拋棄以前,重新出發

技術需要不斷的更新完善,我們用的庫也是這樣,有好的庫當然不放過。

隨著kotlin升級為android官方開發語言,google也基於kotlin開發了jetpack這個工具集,其中androidx目前就被大量使用,當然包含了今天的主角:ViewPager2。

從此,你可以拋棄ViewPager了,嚐嚐新鮮出爐的ViewPager2吧!我嚐了下,的確很香,哈哈!!

有多香?

首先看下有啥用?

官方回答:解決了大部分ViewPager的痛點

  1. 支持動態的View和Fragment
  2. 從右到左佈局
  3. 垂直佈局

以前,這些功能都得自己實現,現在,直接就提供了,能不香嗎?

ViewPager2還是基於ViewGroup實現,但是adapter使用了RecyclerView的Adapter,天生強大,使用無阻礙。

用起來

  • 安裝
dependencies {
implementation "androidx.viewpager2:viewpager2:1.0.0-alpha02"
}

最新發布Notes:https://developer.android.google.cn/jetpack/androidx/releases/viewpager2

參考文檔:

https://developer.android.google.cn/reference/androidx/viewpager2/widget/package-summary.html

你的ViewPager需要升級了!!

https://developer.android.google.cn/reference/androidx/viewpager2/adapter/package-summary

你的ViewPager需要升級了!!

從API設計上看,簡化了很多

  • 常用功能
  1. 方向:設置豎向:setOrientation(ViewPager2.ORIENTATION_VERTICAL),默認橫向
  2. 適配器:可以使用RecyclerView.Adapter、FragmentStateAdapter
  3. TabLayout配合使用:再也不需要setupWithViewPager了,曾經這個配合Fragment引起了銷燬問題,後面google修復了
你的ViewPager需要升級了!!

上圖就可以看出來配合TabLayout使用變得很簡單了。

最後

目前,ViewPager2還沒有正式發佈,但是不妨嘗試用起來,感受下google爸爸的溫暖也是不錯的!!

最後,附上官方案例:

https://github.com/googlesamples/android-viewpager2

提供了:

  1. 使用View作為Page集合
  2. 使用Fragment作為Page集合
  3. 使用可變集合View作為Page集合
  4. 使用可變集合Fragment作為Page集合
  5. 與TabLayout結合

不過,要用這個庫,必須要開啟androidx!切記!

祝大家品嚐愉快!


分享到:


相關文章: