Fragment笔记
Fragment的产生与介绍
Android运行在各种各样的设备中,有小屏幕的手机,超大屏的平板甚至电视。针对屏幕尺寸的差距,很多情况下,都是先针对手机开发一套App,然后拷贝一份,修改布局以适应平板等超级大屏的。难道无法做到一个App可以同时适应手机和平板么,当然了,必须有啊。Fragment的出现就是为了解决这样的问题。你可以把Fragment当成Activity的一个界面的一个组成部分,甚至 Activity的界面可以完全有不同的Fragment组成,更帅气的是Fragment拥有自己的生命周期和接收、处理用户的事件,这样就不必在Activity写一堆控件的事件处理的代码了。更为重要的是,你可以动态的添加、替换和移除某个Fragment。
为什么要使用fragment
- 单Activity+多Fragment:
一个app仅有一个Activity,界面皆是Frament,Activity作为app容器使用。优点:性能高,速度最快。参考:新版知乎 、google系app
- 多模块Activity+多Fragment
优点:速度快,相比较单Activity+多Fragment,更易维护
- 无视图的fragment 保存数据用
- activity的onSaveInstanceState(Bundle outState)能保存的数据量有限,当有大量数据要保存的时候用无视图的fragment
- Activity异常销毁时,onSaveInstanceState能保存的数据有限,数据过大容易oom。所以我们可以在onSaveInstanceState时attach一个Fragment,并将要存储的大数据保存到这个Fragment。当Activity重建时找到这个Fragment,再从中取出那些数据
FragmentPagerAdapter与FragmentStatePagerAdapter
Fragment的生命周期
- Fragment 主要用于定义Fragment
- FragmentManager 主要用于在Activity中操作Fragment
- Fr