ViewPager适配器学习记录( pageAdapter和FragmentPagerAdapter/FragmentStatePagerAdapter))
来源:互联网 发布:淘宝钻石等级怎么看 编辑:程序博客网 时间:2024/05/17 01:03
版权声明:如有转载请注明出处 http://blog.csdn.net/xsf50717,谢谢~
1、概述
ViewPager,顾名思义实现控件的滚动功能,是Support-v4的包中类,使用前要先导包。使用的时候跟listView有点相似,需要设置对应的适配器,通常有俩大类
【pageAdapter】
【FragmentPagerAdapter/FragmentStatePagerAdapter】
fragment有着自己的生命周期,谷歌官方也推荐使用ViewPage+fragment的形式,一般简单的也可以使用ViewPage+pageAdapter形式
这里用这俩种适配器来搭个框架学习使用一下,先上使用FragmentPagerAdapter的效果图
1、FragmentPagerAdapter/FragmentStatePagerAdapter
首先他们都是继承自PagerAdapter,FragmentPagerAdapter适合使用在固定的数量较少的场景,比如本例的4个tab的fragment滑动界面,而FragmentStatePagerAdapter适合适合用在多个tab场景下,并且会保存当前界面以及下一个界面和上一界面,最多可以保留3个(具体源码分析参见http://blog.csdn.net/jackrex/article/details/9885469?utm_source=tuicool&utm_medium=referral)他们的使用方式一致,这里以FragmentPagerAdapter来看
在使用FragmentPagerAdapter时我们首先要实现它的俩个方法,如下
方法一目了然,getCount()返回的是ViewPager页面的数量,getItem()返回的是要显示的fragent对象。
从这里看到我们管理的对象是不同的fragment对应不同的布局
2、pageAdapter
使用pageradapter,至少必须重写下面的四个方法
【 instantiateItem(ViewGroup, int)】
这个函数的实现的功能是创建指定位置的页面视图。适配器有责任增加即将创建的View视图到这里给定的Container中,这是为了确保在finishUpdate(viewGroup)返回时这个已经完成
返回值:返回一个代表新增视图页面的Object
【public void destroyItem (ViewGroup container, int position, Object object)】
该方法实现的功能是移除一个给定位置的页面。适配器有责任从容器中删除这个视图。这是为了确保在finishUpdate(viewGroup)返回时视图能够被移除。
【 public int getCount()】
返回当前有效视图的个数。
【isViewFromObject(View, Object)】
功能:该函数用来判断instantiateItem(ViewGroup, int)函数所返回来的Key与一个页面视图是否是代表的同一个视图(即它俩是否是对应的,对应的表示同一个View)
返回值:如果对应的是同一个View,返回True,否则返回False。
3、viewpager+fragment demo代码实现
主要目录结构如下
主布局文件activity_main.xml如下
可以看出这里通过include包含一头一尾,中间是V4包中的ViewPager
bottom.xml代码如下
通过权重这里也可以使用RadioGroup来做这个底部
然后是MainActivity处理逻辑函数
这里要注意使用Fragment时统统使用V4包下的fragment,否则会出错
要是使用pageAdapter方式核心代码如下
- ViewPager适配器学习记录( pageAdapter和FragmentPagerAdapter/FragmentStatePagerAdapter))
- ViewPager适配器学习记录( pageAdapter和FragmentPagerAdapter/FragmentStatePagerAdapter))
- ViewPager适配器学习记录( pageAdapter和FragmentPagerAdapter/FragmentStatePagerAdapter))
- ViewPager适配器学习记要( pageAdapter和FragmentPagerAdapter/FragmentStatePagerAdapter))
- ViewPager适配器学习记要( pageAdapter和FragmentPagerAdapter/FragmentStatePagerAdapter))
- PageAdapter,FragmentPagerAdapter与FragmentStatePagerAdapter
- viewpager : FragmentStatePagerAdapter和FragmentPagerAdapter
- Android-ViewPager(FragmentPagerAdapter 和 FragmentStatePagerAdapter)
- viewPager适配器PagerAdapter的两个直接子类FragmentPagerAdapter和FragmentStatePagerAdapter的区别
- ViewPager源码解析之FragmentPagerAdapter和FragmentStatePagerAdapter
- Android-- ViewPager FragmentPagerAdapter FragmentStatePagerAdapter
- ViewPager PagerAdapter FragmentPagerAdapter FragmentStatePagerAdapter
- ViewPager中的FragmentPagerAdapter,FragmentStatePagerAdapter
- ViewPager,PagerAdapter,FragmentPagerAdapter,FragmentStatePagerAdapter
- ViewPager之PagerAdapter、FragmentPagerAdapter、FragmentStatePagerAdapter
- FragmentPagerAdapter 和FragmentStatePagerAdapter
- FragmentPagerAdapter 和 FragmentStatePagerAdapter 区别
- FragmentStatePagerAdapter和FragmentPagerAdapter
- 雅可比矩阵matlab实现
- 上架流程注意点
- 个人记录-LeetCode 103. Binary Tree Zigzag Level Order Traversal
- 移植gflags到hi3519
- 常见的I/O控制方式
- ViewPager适配器学习记录( pageAdapter和FragmentPagerAdapter/FragmentStatePagerAdapter))
- tensorflow 学习资料
- 视图+视图DML操作+获取用户的所有表名或视图名+视图插入数据
- android 状态栏电量百分比控制
- Android 创建本地简易服务器,测试下载功能
- 【HTML】No.5 HTML 标题
- 网页打不开(403 Forbidden)但是搜索界面可以看到预览解决办法
- 深入springMVC------文件上传源码解析(上篇) 最近在项目中,使用springmvc 进行上传文件时,出现了一个问题: org.springframework.web.multipart
- 解析Unity中transform.positon.x不能赋值的原因