android - 使用Fragment,每次显示Fragment的时候都要回调onCreateView()这个比较费时的方法么?

查看:776
本文介绍了android - 使用Fragment,每次显示Fragment的时候都要回调onCreateView()这个比较费时的方法么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

当创建一个Fragment时,必须得重写public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)这个方法返回界面内容。
在这里做的界面上的设置算是比较费时的,但是不管是使用Activityreplace方法或是ViewPagerFragmentPageAdapter系统都会销毁Fragment(走到onDestroyView()),然后再创建onCreateView()
我现在的疑问就是Android为什么要这么设计Fragment呢,很多应用的首页都是使用Fragment和标签切换的,如果这么做岂不是浪费CPU而且切换会不流畅?

解决方案

FragmentPagerAdapter实现将Fragment detach和attach, 因为Android认为如果一个Fragment不需要展示, 则需要将UI从整个View树下移除, 这样才不会造成界面元素过多, 绘制时间增长, 导致界面卡顿. 你可以在你的Fragment里面用一个变量在onDestoryView的时候将View保存下来, 然后在下一次onCreateView的时候, 判断该变量是否为空, 如果不为空则直接返回该变量, 而不是从新创建View

这篇关于android - 使用Fragment,每次显示Fragment的时候都要回调onCreateView()这个比较费时的方法么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆