笔记61--FragmentPagerAdapter
来源:互联网 发布:erp仓库管理系统 php 编辑:程序博客网 时间:2024/06/06 03:58
贴连接:http://blog.csdn.net/kaiwii/article/details/7823613、http://www.apkbus.com/android-123455-1-1.html
一、是什么
FragmentPagerAdapter是PagerAdapter的一种实现。
二、特点
他将每个页面表示为一个Fragment,并且每个Fragment都将会保存到fragment manager当中。而且,当用户不可能再次回到页面的时候,fragment manager才会将这个fragment销毁。
这种pager十分适用于有一些静态fragment,例如一组tabs的时候使用。每个页面对应的Fragment当用户可以访问的时候会一直存在内存中,但是,当这个页面不可见的时候,view hierarchy将会被销毁。这样子会导致应用程序占有太多资源。当页面数量较大时,建议使用FragmentStatePagerAdapter。
三、怎么用
当使用FragmentPagerAdapter时,ViewPager一定要使用正确的ID set。
只需实现getItem(int)和getCount()两个方法。需要理解destItem()并不是去destroy Fragment对象,而是destroy Fragment的视图。
由于创建好了的Fragment会一直在内存中,不会被销毁,但它的视图层次是会被销毁的,所以onCreate()方法只会被调用一次,而onCreateView()方法,每次Fragment从不可见到可见时会被调用,可以看到Fragment有一些生命周期回调方法onPause()、onDestroy()等等。
四、与PagerAdapter区别
PagerAdapter:
1)PagerAdapter生成一个页面视图,决定了ViewPager全部几页,PagerAdapter负责每页的初始化、销毁等工作。
FragmentAdapter:
Fragment本身提供的一些特性让我们方便的对每页进行管理,使用FragmentManager可以根据ID或TAG来查找Fragment,动态添加、删除、提供,Fragment可以管理自己的生命周期,像Activity一样提供了一些生命周期回调方法。
让Fragment成为ViewPager的一页时,FragmentManager会一直保存管理创建好了的Fragment,即使当前不是显示的这一页,Fragment对象也不会被销毁,在后台默默等待重新显示。但如果Fragment不再可见时,它的视图层次会被销毁掉,下次显示时视图会重新创建。
当使用FragmentPagerAdapter时,一定要为它的宿主ViewPager设置一个有效的ID。
2)FragmentStatePageAdapter:
由于使用FragmentPageAdapter时,Fragment对象会一直保留在内存中,所以有大量的显示页时,就不适用FragmentPageAdapter。大量选项页时,可使用FragmentStatePageAdapter。
3)FragmentStatePageAdapter特点:如果Fragment不显示,那么Fragment对象和视图都会被销毁,但在回调onDestroy()之前会回调onSaveInstanceState(Bundle outState)来保存Fragment的状态,下次Fragment显示时通过onCreate(Bundle savedInstanceState)把存储的状态值取出来。
- 笔记61--FragmentPagerAdapter
- FragmentPagerAdapter+ViewPager 笔记
- FragmentPagerAdapter
- FragmentPagerAdapter
- FragmentPagerAdapter
- FragmentPagerAdapter
- FragmentPagerAdapter
- FragmentPagerAdapter
- FragmentPagerAdapter
- FragmentPagerAdapter
- FragmentPagerAdapter
- Android 开发笔记 第三季 FragmentPagerAdapter
- 笔记:ViewPager+FragmentPagerAdapter数据刷新问题
- Android仿微信界面--使用FragmentPagerAdapter,viewpager实现(慕课网笔记)
- FragmentPagerAdapter API
- FragmentPagerAdapter & FragmentStatePagerAdapter
- fragmentPagerAdapter使用
- FragmentPagerAdapter使用
- 关于private继承
- JAVA单例设计模式
- 关于VisualStudio性能分析数据中的独占样本数和非独占样本数的意义
- C/C++内存管理(3)
- java获取路径
- 笔记61--FragmentPagerAdapter
- 在win7下用U盘安装Ubuntu14.04,双系统
- 02.工厂模式--Factory
- windows8.1启动WampServer失败的解决办法
- ftp学习之ssl套接字
- 重新拾起C语言的威严
- 数据库的最简单实现
- Text editor does not have a document provider
- WeChall Training: WWW-Robots