1、Fragment简介
Fragment是Android开发中一个寄生于Activity的类,它的主要作用是显示界面给用户,可以看做是一个特殊的Activity。为了让界面可以在平板上更好地展示,Android在3.0版本引入了Fragment(碎片)功能,它非常类似于Activity,可以像Activity一样包含布局。
我们说Fragment是寄生于Activity的,所以我们在使用Fragment的时候,通常是嵌套在Activity中使用的。
2、问题描述
类似新浪微博的底部选项栏目,很多app也采用了类似的结构布局。但是我们在使用该种布局的时候,尤其是在网络加载的情况下,会发现一个问题:每次FragmentTabHost切换fragment时会调用onCreateView()重绘UI。
对于很多应用来说,数据都是要从服务器上获取的,如果重绘UI,就表示数据要再次获取和填充,那么有没有什么比较好的解决方案呢?
3、解决方案
解决方案就是缓存UI。
与Adapter中的UI缓存类似,我们也可以在Fragment中缓存UI,达到界面不被系统回收的效果。可能有人会有疑问,手机不能支持这么大的缓存怎么办?额,其实该种方案就是以空间换时间的办法。对于现在的手机系统来说,基本没有小于1G的内存量的,一般来说,你缓存几个页面不是什么大问题。
图片的缓存可能会出现OOM(内存溢出)错误,UI界面一样也可能,但是UI的缓存的消耗是远远小于图片缓存的。现在的手机