Fragment使用的正确姿势
网上关于Fragment的使用建议和分析非常多,可是依旧会有非常多人在使用Fragment的时候出现各种奇葩错误
这篇文章我分享一下各种项目中解决Fragment的各种注意事项(不做原理分析),假设有错误欢迎大家指出
0,必须知道Activity 、Fragment的生命周期。平时多看多对照就好。强记感觉效果不好
1,假设Fragment初始化时须要传入參数那么必须实现setArguments,同一时候必须又一次onCreate方法对存入的值进行读取
2,Fragment假设在执行期间參数的新的所有变量(网络。计算等)。必须在onSaveInstanceState里面进行保存;能够在onViewCreated里面又一次对view赋值
3。尽量不要用到getActivity,假设用到一定须要非空推断
Fragment最好不要用到异步线程,假设用到一定要考虑fragment是否被回收后线程回调情况;或者在onPase里面中断
假设非要有这种情况。能够把这个交给它的activity'来处理
5,假设在其他地方拿到frament的引用在使用它的所有变量。必须考虑当前fragment是否存在或者2是否已经实现
6,FragmentManager系统会用这个来管理假设出现的fragment,假设出现奇葩的不可理解的异常请想一下这个类
举个栗子:viewpager+fragment的使用场景,List<Fragment> mFragments 中须要改动或删除当中的对象,调用刷新比起作用。简单改动你须要在FragmentManager里面移除你须要变得的fragment或者替换,就可以达到效果
7,百度统计关于fragment的统计未考虑6情况。可能会造成onResume和onPase方法不一致,然后给出一个内存泄露的警告
8。假设在fragment的布局文件直接指定点击处理事件,假设在当前的fragment里面找不到,请看载入它的Activity
9,fragment里面startActivityForResult,在低版本号里面不会有对应的回调。解决的方法在它的Activity里面处理
10,fragment里面 View mView = inflater.inflate(R.layout.xxx null)。第二个參数假设没有特殊使用请设置null
11,一个优化FragmentManager能够用findByTag获取你当前使用的fragment,而不用时时的保持引用(注意6)
12,v4包和sdk以下的引用路径用的不是一个东东,会有兼容问题
13。请用DialogFragment代替AlertDialog
最后补充一个图来源不知道了
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center">
Fragment使用的正确姿势的更多相关文章
- 判断是否为gif/png图片的正确姿势
判断是否为gif/png图片的正确姿势 1.在能取到图片后缀的前提下 1 2 3 4 5 6 7 8 9 //假设这是一个网络获取的URL NSString *path = @"http:/ ...
- 在Linux(ubuntu server)上面安装NodeJS的正确姿势
上一篇文章,我介绍了 在Windows中安装NodeJS的正确姿势,这一篇,我们继续来看一下在Linux上面安装和配置NodeJS. 为了保持一致,这里也列举三个方法 第一个方法:通过官网下载安装 h ...
- 程序员取悦女朋友的正确姿势---Tips(iOS美容篇)
前言 女孩子都喜欢用美图工具进行图片美容,近来无事时,特意为某人写了个自定义图片滤镜生成器,安装到手机即可完成自定义滤镜渲染照片.app独一无二,虽简亦繁. JH定律:魔镜:最漂亮的女人是你老婆魔镜: ...
- ios监听ScrollView/TableView滚动的正确姿势
主要介绍 监测tableView垂直滚动的舒畅姿势 监测scrollView/collectionView横向滚动的正确姿势 1.监测tableView垂直滚动的舒畅姿势 通常我们用KVO或者在scr ...
- 玩转 Ceph 的正确姿势
玩转 Ceph 的正确姿势 本文先介绍 Ceph, 然后会聊到一些正确使用 Ceph 的姿势:在集群规模小的时候,Ceph 怎么玩都没问题:但集群大了(到PB级别),这些准则可是保证集群健康运行的不二 ...
- 解锁redis锁的正确姿势
解锁redis锁的正确姿势 redis是php的好朋友,在php写业务过程中,有时候会使用到锁的概念,同时只能有一个人可以操作某个行为.这个时候我们就要用到锁.锁的方式有好几种,php不能在内存中用锁 ...
- jquery选中radio或checkbox的正确姿势
jquery选中radio或checkbox的正确姿势 Intro 前几天突然遇到一个问题,没有任何征兆的..,jquery 选中radio button单选框时,一直没有办法选中,后来查了许多资料, ...
- 程序员节应该写博客之.NET下使用HTTP请求的正确姿势
程序员节应该写博客之.NET下使用HTTP请求的正确姿势 一.前言 去年9月份的时候我看到过外国朋友关于.NET Framework下HttpClient缺陷的分析后对HttpClient有了一定的了 ...
- 使用 win10 的正确姿势
17年9月初,写了第一篇<使用 win10 的正确姿势>,而现在半年多过去,觉得文章得更新一些了,索性直接来个第二版吧. -----2018.3.24 写 一. 重新定义桌面 我的桌面: ...
随机推荐
- css3特效第一篇--旋转的背景&翻书效果
一.html遮盖层与css3的旋转动画 >效果图(加载可能会慢一点儿,请稍等...): >实现思路:在一个大的div中装入一个底层img和顶层的div(里面的内容按照以上图片呈现的样式布局 ...
- 2015 Multi-University Training Contest 5 hdu 5349 MZL's simple problem
MZL's simple problem Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Oth ...
- 使用BabeLua在cocos2d-x中编辑和调试Lua
使用BabeLua在cocos2d-x中编辑和调试Lua BabeLua是一款基于VS2012/2013的Lua集成开发环境,具有Lua语法高亮,语法检查.自己主动补全.高速搜索,注入宿主程序内对Lu ...
- IBM AppScan官方帮助文档错别字缺陷,IBM的測试人员也太粗心了吧
袁术=元素?
- UVALive 4223 / HDU 2962 spfa + 二分
Trucking Problem Description A certain local trucking company would like to transport some goods on ...
- Android webView 缓存 Cache + HTML5离线功能 解决
时间 -- :: CSDN博客 原文 http://blog.csdn.net/moubenmao/article/details/9076917 主题 Android HTML5 WebView的缓 ...
- JS,Javascript加载与函数执行过程
Js,Javascript加载与函数执行过程 test.html <!DOCTYPE HTML> <html lang="en"> <head> ...
- 最长回文子串 C++实现 java实现 leetcode系列(五)
给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: "bab" 注意: &qu ...
- BZOJ 4260 trie树
思路: 搞一个前缀异或和 一次从左往右 另一次从右往左 异或最大值 用字典树搞一搞 //By SiriusRen #include <cstdio> #include <cstrin ...
- Java多线程编程模式实战指南(三):Two-phase Termination模式--转载
本文由本人首次发布在infoq中文站上:http://www.infoq.com/cn/articles/java-multithreaded-programming-mode-two-phase-t ...