第六单元 ViewPager的介绍和使用

本文主要介绍了Android中ViewPager的使用,包括在xml中引入、创建布局文件、适配器等步骤,还提及了翻页动画和自动翻页。重点讲解了ViewPager与Fragment结合使用,对比了FragmentStatePagerAdapter和FragmentPagerAdapter的异同及适用场景。

ViewPager的介绍和使用

  • ViewPager简介和用处
    1 ,我们先在xml中引入一下.
    2 ,然后在layout文件文件夹中,创建一个viewPager的布局文件
    3,就像使用listview一样,现在该创建适配器了
    4, 按照业务需求完善适配中的方法
    5在activity中初始化viewPager和adapter
    运行效果
  • viewPage的翻页动画
    自定义翻页效果代码
    自动翻页
    翻页监听
    1. 设置方法
    2. 翻页监听接口
    3. 重写方法
  • ViewPager与Fragment结合使用 ( 重 点 )
    1. 创建Fragment及相应的xml布局
    2. 给Viewpager设置数据和适配器 FragmentStatePagerAdapter FragmentPagerAdapter

ViewPager简介和用处

Viewpager,视图翻页工具,提供了多页面切换的效果。Android
3.0后引入的一个UI控件,位于v4包中。低版本使用需要导入v4包,但是现在我们开发的APP一般不再兼容3.0及以下的系统版本,另外现在大多数使用Android
studio进行开发,默认导入v7包,v7包含了v4,所以不用导包,越来越方便了。

Viewpager使用起来就是我们通过创建adapter给它填充多个view,左右滑动时,切换不同的view。Google官方是建议我们使用Fragment来填充ViewPager的,这样
可以更加方便的生成每个Page,以及管理每个Page的生命周期。

ViewPager 直接继承了 ViewGroup,所有它是一个容器类,可以在其中添加其他的 view 类。 ViewPager 需要一个
PagerAdapter 适配器类给它提供数据。 ViewPager 经常和 Fragment 一起使用,并且提供了专门的
FragmentPagerAdapter 和 FragmentStatePagerAdapter 类供 Fragment 中的
ViewPager 使用。

1 ,我们先在xml中引入一下.

在这里插入图片描述

2 ,然后在layout文件文件夹中,创建一个viewPager的布局文件

在这里插入图片描述

3,就像使用listview一样,现在该创建适配器了

创建适配器,只要继承了PagerAdapter即可

重点在于实现这样一个Adapter:
在这里插入图片描述
getCount( ):获得viewpager中有多少个view

destroyItem( ):移除一个给定位置的页面。适配器有责任从容器中删除这个视图。这是为了确保 在finishUpdate(viewGroup)返回时视图能够被移除。

instantiateItem( ):①将给定位置的view添加到ViewGroup(容器)中,创建并显示出来 ②返回一个代表新增页面的Object(key),通常都是直接返回view本身就可以了, 当然你也可以自定义自己的key,但是key和每个view要一一对应的关系

isViewFromObject( ):判断instantiateItem(ViewGroup, int)函数所返回来的Key与一个页面视图是否是 代表的同一个视图(即它俩是否是对应的,对应的表示同一个View),通常我们直接写 return view == object;就可以了,至于为什么要这样讲起来比较复杂,后面有机会进行了解吧 貌似是ViewPager中有个存储view状态信息的ArrayList,根据View取出对应信息

5 在activity中初始化viewPager和adapter

在这里插入图片描述

运行效果

在这里插入图片描述

viewPage的翻页动画

自定义翻页效果代码

在这里插入图片描述

自动翻页

在这里插入图片描述

ViewPager与Fragment结合使用 ( 重 点 )

与Fragment结合使用其实也一样,只是用Fragment代替原先的View,填充ViewPager;然后就是Adapter不一样,配合Fragment使用的有两个Adapter:FragmentPagerAdapter和FragmentStatePagerAdapter。

相同点:
FragmentPagerAdapter和FragmentStatePagerAdapter都继承自PagerAdapter

不同点:
卸载不再需fragment时,各自采用的处理方法有所不同

ViewPager两个Adapter方法的区别
在destroyItem()方法中,FragmentStatePagerAdapter调用的是remove()方法,适用于页面较多的情况;FragmentPagerAdapter调用的是detach()方法,适用于页面较少的情况。但是有页面数据需要刷新的情况,不管是页面少还是多,还是要用FragmentStatePagerAdapter,否则页面会因为没有重建得不到刷新

fragment布局
在这里插入图片描述
fragment代码
在这里插入图片描述
适配器
在这里插入图片描述
Activity布局
在这里插入图片描述
Activity代码
在这里插入图片描述

FragmentStatePagerAdapter

fragment的生命周期会执行
onDestoryView
onDestory
onCreate
onCreateView
fragment会被销毁 适用用 图片预览等多个fragment的情况

FragmentPagerAdapter

onDestoryView
onCreateView
fragment不会被销毁
适用于引导页等少个fragment的情况

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值