Android进阶知识点(ViewPager,Fragment argument )
来源:互联网 发布:全球淘宝下载 编辑:程序博客网 时间:2024/06/10 01:53
Fragment argument && ViewPager
(我在这里列的只是我看书时记下的比较重要的东西)
argument bundle:只属于fragment的“某个地方”,可用于获取自己的extra信息。每个fragment实例都可以附带一个Bundle对象。该bundle包含有键值对。一个键值对即一个argument。首先要创建Bundle对象,然后用限定类型的“int”,将argument添加到bundle中。
附加argument给Fragment,需调用Fragment.setArgumentd(Bundle)方法。而且还必须在fragment创建后,添加给activity前完成。
一般做法是:添加名为newInstance()的静态方法给Fragment类。该方法完成fragment实例及bundle对象的创建,然后将argument放入bundle中,再附加给fragment。此时托管activity,就可以直接调用该方法来获取fragment实例(可携带任何参数,比如UUID)。
列表的刷新:模型层数据如有变化,应通知RecyclerView的Adapter,以便及时获取最新数据并刷新显示列表项。可与系统的ActivityManager回退栈协同运作。
在应用回退时,我们可以选择覆盖fragment的onResume()方法,在这个方法里出发updateUI()方法,刷新列表项。如果已配置好Adapter,就调用notifyDataSetChanged()方法来修改updateUI()方法。
(整个项目我在完成后,分享给大家看)
屏幕的滑动:为UI添加ViewPager,ViewPager需要PagerAdapter的支持来提供视图(之间匹配较为复杂,使用PagerAdapter子类FragmentStatePagerAdapter(getCount(),getItem(int))协助处理许多细节问题)。
FragmentStatePagerAdapter,对于不需要的fragment调用remove方法来处理。
而FragmentPagerAdapter创建的fragment永远不会销毁,可用来分页显示用户界面。
ViewPager的工作原理:
需要ViewPager托管非fragment视图时,就需要实现原生PagerAdapter接口。例如:在ViewPager中托管图片这样的常见视图对象时。
决定fragment视图何时创建的FragmentManager,而Adapter需要我们及时地提供View.当RecyclerView要求Adapter提供fragment视图时,我们无法立即创建并提供其视图。
这正是ViewPager存在的原因,它使用的是PagerAdapter类,它比Adapter更加复杂,因为它要处理更多的视图管理工作。
PagerAdapter不使用可返回视图的onBindViewHolder()方法。它使用自己的一套,它可决定自己何时创建视图。
布局文件使用的好处:虽然可以直接用代码来创建布局。但使用布局文件,可以很好的分离控制层和视图层对象。视图层定义在XML中,控制层对象定义在Java代码中。使用布局文件,还可以使用Android的资源修饰系统,实现按设备属性自动调用合适的布局文件。
- Android进阶知识点(ViewPager,Fragment argument )
- Android进阶知识点(fragment)
- Android进阶知识点(fragment之间数据传递,对话框,工具栏)
- Android知识点九(ViewPager + Fragment 实现底部菜单栏)
- Android ViewPager刷新Fragment数据(ViewPager获取Fragment对象)
- Android ViewPager刷新Fragment数据(ViewPager获取Fragment对象)
- Android 复习6 fragment argument
- Android进阶知识点(RecyclerView)
- Android Api Demos登顶之路(三十五)Fragment-->Argument
- Android Activity+ViewPager(Fragment)+Fragment
- Android FragmentTabHost嵌套(ViewPager+Fragment)问题
- android 中的 ViewPager+ Fragment
- android 中的 ViewPager+ Fragment
- Android ViewPager Fragment tab
- android 中的 ViewPager+ Fragment
- android 中的 ViewPager+ Fragment
- android 中的 ViewPager+ Fragment
- android fragment与ViewPager
- Apache JMeter实现Trafodion并发测试
- Linux 打开文件件句柄数的问题
- windows下硬盘安装debian
- 密码显示隐藏符号格式会变
- hdu 5828
- Android进阶知识点(ViewPager,Fragment argument )
- LVS源码剖析-init
- javascript技术难点(三)之this、new、apply和call详解
- hdu 5818
- spark.mllib源码阅读-优化算法1-Gradient
- 回答阿里社招面试如何准备,顺便谈谈对于Java程序猿学习当中各个阶段的建议
- qos实现之tc流量控制
- matcaffe错误:Invalid MEX-file: caffe.mexa64,x86_64-linux-gnu/libstdc++.so.6
- 常见Android面试题及答案(详细整理)