Android进阶知识点(ViewPager,Fragment argument )

来源:互联网 发布:全球淘宝下载 编辑:程序博客网 时间:2024/06/10 01:53

Fragment argument && ViewPager

(我在这里列的只是我看书时记下的比较重要的东西)

     argument bundle只属于fragment的“某个地方”,可用于获取自己的extra信息。每个fragment实例都可以附带一个Bundle对象。该bundle包含有键值对。一个键值对即一个argument。首先要创建Bundle对象,然后用限定类型的“int”,将argument添加到bundle中。

   附加argumentFragment,需调用Fragment.setArgumentd(Bundle)方法。而且还必须在fragment创建后,添加给activity前完成。

一般做法是:添加名为newInstance()的静态方法给Fragment类。该方法完成fragment实例及bundle对象的创建,然后将argument放入bundle中,再附加给fragment。此时托管activity,就可以直接调用该方法来获取fragment实例(可携带任何参数,比如UUID)。

   列表的刷新模型层数据如有变化,应通知RecyclerViewAdapter,以便及时获取最新数据并刷新显示列表项。可与系统的ActivityManager回退栈协同运作。

在应用回退时,我们可以选择覆盖fragmentonResume()方法,在这个方法里出发updateUI()方法,刷新列表项。如果已配置好Adapter,就调用notifyDataSetChanged()方法来修改updateUI()方法。

 (整个项目我在完成后,分享给大家看)

       屏幕的滑动为UI添加ViewPager,ViewPager需要PagerAdapter的支持来提供视图(之间匹配较为复杂,使用PagerAdapter子类FragmentStatePagerAdaptergetCount(),getItemint))协助处理许多细节问题)

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的资源修饰系统,实现按设备属性自动调用合适的布局文件。

0 0
原创粉丝点击