Skip to content

学不动也要学! ViewPager2新特性

ViewPager2 和 ViewPager 的区别

  • ViewPager2 API最大的变化是它现在使用RecyclerView。
  • 使用 ViewPager2 需要迁移到 AndroidX,因为android.support库中不支持ViewPager2
  • FragmentStateAdapter 替换 FragmentStatePagerAdapter
  • RecyclerView.Adapter 替代 PagerAdapter
  • registerOnPageChangeCallback 替换 addPageChangeListener

作者:臭豆腐炒鸡蛋 链接:https://juejin.cn/post/6844904050140381191 来源:稀土掘金 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

和ViewPager进行对比

ViewPager2相比ViewPager做了哪些改变呢,下面对不同点进行了罗列: 采用registerOnPageChangeCallback() 代替addPageChangeListener()监听页面的变化 因为ViewPager2.java这个类被申明为fianl,无法继承它进行二次改造,不过可以copy一份进行修改加工 采用FragmentStateAdapter 替代FragmentStatePagerAdapter,采用 RecyclerView.Adapter 替代PagerAdapter; offScreenPageLimit新参数 新体验

ViewPager2 是用 RecyclerView来实现的,因此它的 Adapter 其实就是 RecyclerView 的 Adapter。

设置竖向滑动 只需要一行代码就能设置ViewPager2进行竖向方向的滑动:

java
viewPager2.setOrientation(ViewPager2.ORIENTATION_VERTICAL);

页面滑动监听事件 上面说到viewPager2监听页面滑动只需要重写我们需要的方法即可

java
viewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
    @Override
    public void onPageSelected(int position) {
        super.onPageSelected(position);
    }
});