Android 关于Fragment一些简单注意事项
2015-05-13 16:43
435 查看
1.Fragment的生命周期一定要了解清楚:
其实没有什么好说的。
注意关键字所执行的方法:
注意下面基本fragmentTransaction.replace();运行
当FragmentA(初始化)和FragmentB(后启动的) "新建" 、"显示" 、"隐藏"、“结束” 时调用了那些方法.(按顺便从左到右)
"新建" (onAttach->onCreate->onCreateView->onActivityCreated)
"显示" (onStart->onResume)
"隐藏" (onPause->onStop)
“结束” (onDestroyView->onDestroy->onDetach)
FragmentA "打开"--->执行 "新建" 再执行FragmentA 的"显示"
FragmentB "打开"--->执行FragmentA "隐藏" 再才执行FragmentA “关闭” 执行 Fragment B "新建" 再执行Fragment B 的"显示"
FragmentB "关闭"--->执行FragmentB "隐藏" 再才执行FragmentB “关闭” 最后执行FragmentA 的"显示"
如果不清楚这几点的生命周期,对控制开发Fragment的操作非常有影响。
2. 就是FragmentActivity进行控制Fragment。
关键点: 要不要执行 fragmentTransaction.addToBackStack(null); (通俗点说: 可以返回 还是 不可以返回)
如果要可以返回的话。在 "自身" 调用 fragmentTransaction.commit(); 之前加上上面那句话。
注意 是 "自身" 的。
因为很多时。为了统一调用方法,就傻乎乎的去调用别人的接口,也不知道别人里面写什么。
结果自己调试N久都不知道什么情况。
3. 在一个Fragment A 嵌入另一个 Fragment B 时. 究竟启动Fragment B时要放在生命周期中的哪个方法呢。
(如果放不好的话,Fragment B 在可以返回的情况下,无法关闭 Fragment A和连带的Fragment B)
在上面生命周期中说到 "新建" 、"显示" 、"隐藏"、“结束” 这4个词。
在这4个词中。在Fragment中只会执行一次的就只有 "新建" 和 “结束” 。
用脑子想想都知道不可能放在“结束”中的方法,所以只能放在"新建"的方法中的 随便一个。
4.如何使用Fragment来处理逻辑而动态显示页面。
首先,加载一个Fragment方式有以下几种:
1.add(Fragment fragment, String tag)
用于加载不用显示UI的Fragment ,不过需要加入标记字符
2.add(@IdRes int containerViewId, Fragment fragment);
一看就知道将fragment绑定在UI上containerViewId的显示。
3.add(@IdRes int containerViewId, Fragment fragment,@Nullable String tag);
这个又要标记。又要绑在UI上的方式。(我个人用的是最少了)
相信各位自己已经知道自己要用哪一种方式加载fragment了。
5.
其实没有什么好说的。
注意关键字所执行的方法:
注意下面基本fragmentTransaction.replace();运行
当FragmentA(初始化)和FragmentB(后启动的) "新建" 、"显示" 、"隐藏"、“结束” 时调用了那些方法.(按顺便从左到右)
"新建" (onAttach->onCreate->onCreateView->onActivityCreated)
"显示" (onStart->onResume)
"隐藏" (onPause->onStop)
“结束” (onDestroyView->onDestroy->onDetach)
FragmentA "打开"--->执行 "新建" 再执行FragmentA 的"显示"
FragmentB "打开"--->执行FragmentA "隐藏" 再才执行FragmentA “关闭” 执行 Fragment B "新建" 再执行Fragment B 的"显示"
FragmentB "关闭"--->执行FragmentB "隐藏" 再才执行FragmentB “关闭” 最后执行FragmentA 的"显示"
如果不清楚这几点的生命周期,对控制开发Fragment的操作非常有影响。
2. 就是FragmentActivity进行控制Fragment。
关键点: 要不要执行 fragmentTransaction.addToBackStack(null); (通俗点说: 可以返回 还是 不可以返回)
如果要可以返回的话。在 "自身" 调用 fragmentTransaction.commit(); 之前加上上面那句话。
注意 是 "自身" 的。
因为很多时。为了统一调用方法,就傻乎乎的去调用别人的接口,也不知道别人里面写什么。
结果自己调试N久都不知道什么情况。
3. 在一个Fragment A 嵌入另一个 Fragment B 时. 究竟启动Fragment B时要放在生命周期中的哪个方法呢。
(如果放不好的话,Fragment B 在可以返回的情况下,无法关闭 Fragment A和连带的Fragment B)
在上面生命周期中说到 "新建" 、"显示" 、"隐藏"、“结束” 这4个词。
在这4个词中。在Fragment中只会执行一次的就只有 "新建" 和 “结束” 。
用脑子想想都知道不可能放在“结束”中的方法,所以只能放在"新建"的方法中的 随便一个。
4.如何使用Fragment来处理逻辑而动态显示页面。
首先,加载一个Fragment方式有以下几种:
1.add(Fragment fragment, String tag)
用于加载不用显示UI的Fragment ,不过需要加入标记字符
2.add(@IdRes int containerViewId, Fragment fragment);
一看就知道将fragment绑定在UI上containerViewId的显示。
3.add(@IdRes int containerViewId, Fragment fragment,@Nullable String tag);
这个又要标记。又要绑在UI上的方式。(我个人用的是最少了)
相信各位自己已经知道自己要用哪一种方式加载fragment了。
5.
相关文章推荐
- 关于Android的一些基础注意事项
- 关于Android应用开发的一些安全注意事项
- 关于Android应用开发的一些安全注意事项
- android笔记2——关于图片缓存的一些注意事项
- Android Fragment 的使用,一些你不可不知的注意事项
- Android Fragment+ViewPager 组合,一些你不可不知的注意事项
- 关于Android应用开发的一些安全注意事项
- 关于Android应用开发的一些安全注意事项
- 关于Android应用开发的一些安全注意事项
- Android关于9patch图片的注意事项和其他一些心得
- Android Fragment 的使用,一些你不可不知的注意事项
- Android Fragment 的使用,一些你不可不知的注意事项
- Android Fragment:一些你不可不知的注意事项
- Android Fragment 的使用,一些你不可不知的注意事项
- Android Fragment+ViewPager 组合,一些你不可不知的注意事项
- Android Fragment 的使用,一些你不可不知的注意事项
- 关于SQL语句的一些注意事项
- Android关于系统拍照功能的使用注意事项
- 关于Android中.so库的坑和适配Https的注意事项
- Android Fragment中载入Fragment时注意事项