你的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!切记!

祝大家品尝愉快!


分享到:


相關文章: