Android 优化Fragment防止页面多次inflate
2015-10-09 09:51
190 查看
Android 3.0开始Fragment多次受到广泛关注,是的页面开发更加方便。
开发Fragment需要注意一下几点:
如果Fragment页面只出现一次,类似欢迎界面的话 使用 replace+不断新建Fragment方法即可
如果使用Fragment+BackStack,不要使用replace,应该使用add+remove+popBackStack+addToBackStack+hide+show
如果是做Tab页面,确切的说你还需要定义至少一个List<Fragment> fragmentList。
将初始化完毕的所有Fragment加入fragmentlist,然后使用 add+attach+detattch方法进行管理,add负责添加,其他2个方法负责切换,这样效率特别好,防止了Fragment的叠加。
Fragment的内部优化,依据Fragment的生命周期,onCreateView和onDestroyView会被反复调用,因此需定义一个全局的contenrView优化如下
FragmetnManager+FragmentTransaction+Fragment+FragmentActivity是4个永远离不开的组件。因此来说,开发难度有所提升的同时,效率问题也成为了重点考虑的。
开发时经常遇到的Fragment问题有:管理,事务,添加,移除,通信,回退栈。Fragment的效率问题发生的原因是FragmentManager设计并不完美造成的。FragmentManager只做了一半工作,剩下的一半管理工作需要由开发人员来实现。
开发Fragment需要注意一下几点:
如果Fragment页面只出现一次,类似欢迎界面的话 使用 replace+不断新建Fragment方法即可
如果使用Fragment+BackStack,不要使用replace,应该使用add+remove+popBackStack+addToBackStack+hide+show
如果是做Tab页面,确切的说你还需要定义至少一个List<Fragment> fragmentList。
将初始化完毕的所有Fragment加入fragmentlist,然后使用 add+attach+detattch方法进行管理,add负责添加,其他2个方法负责切换,这样效率特别好,防止了Fragment的叠加。
Fragment的内部优化,依据Fragment的生命周期,onCreateView和onDestroyView会被反复调用,因此需定义一个全局的contenrView优化如下
private View contentView=null; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (contentView==null){ contentView=inflater.inflate(R.layout.testlayout, container, false); }else{ return contentView; } return super.onCreateView(inflater, container, savedInstanceState); } @Override public void onDestroyView() { //移除当前视图,防止重复加载相同视图使得程序闪退 ((ViewGroup)contentView.getParent()).removeView(contentView); super.onDestroyView(); }
相关文章推荐
- 用Android实现串扫描操作,将带有“111”字符的输出1,否则输出0
- 【Android】 Activity课件
- Android Gson
- Android-onInterceptTouchEvent()和onTouchEvent()总结
- Android Studio 快捷键
- android屏幕适配
- android studio 更改背景和设置字体大小
- Android TextView自动换行文字排版参差不齐的原因
- android 的动画类型
- android仿QQ下拉回弹效果
- 关于Android中使用AES加密解密的问题
- Android各层推荐开发书籍及参考资料
- android popwindow的使用
- Android SDK 代理设置
- android 调用系统照相机拍照后剪裁
- TouchSlop的初步认识(Android 判断触摸时是否滑动事件的常量)
- Android开发常用的一些功能模块
- android 获取设备Configuration配置信息
- Android开发总结笔记 ImageView(图像视图) 1-1-8
- Android系统的常用权限