Fragment使用心得
2016-05-14 11:39
309 查看
1、Fragment依附于ViewGroup作为其显示的容器。可以认为它是挂载在ViewGroup下面的。
所以使用getSupportFragmentManager().beginTransaction().replace的时候是替换不掉ViewGroup下面原生的View的(原生指的是在xml中定义的,不能动态切换的View),只能替换掉依附在上面的其他Fragment。
所以replace android.R.id.content的时候,如果没指定背景,会发现Fragment与原生界面发生重合,说明fragment不能替换掉原生的View。
所以想做成切换Activity那样的效果。就要在这么做:
1、Activity加载一个空界面。
2、onCreate时向android.R.id.content加入一个Fragment
3、切换时用另一个Fragment替换掉上述的Fragment。形成了类似Activity的切换效果。(过渡动画可以自定义)
2、getSupportFragmentManager与getFragmentManager不能混用,虽然它们两个效果是一样的,但是属于两个独立的Fragment管理体系,混用的话,就会发生重叠。(比如都向同一个容器replace Fragment,两者会同时出现)(应该没人会这么用吧)
3、不要以为FragmentActivity就是用来做类似Activity切换的用途,其实不要被名字迷惑,不过就是为了支持3.0以下支持Fragment的一个Activity而已。AppCompatActivity也是继承于FragmentActivity。用作最新SDK的设计风格显示。
4、Fragment真的很强大。主要两点感受:
1、模块化,将一个Activity分割成多个功能模块,方便管理、代码清晰、容易移植。
2、轻量切换,由于少了Activity的AMS调度,减少了不同界面之间切换的成本。做到应用提速。但是缺点就是由于都是一个Activity,不能外部直接调用某功能模块,建议类似功能做到同一Activity中,不同功能还是分开Activity
随手笔记,没空排版
所以使用getSupportFragmentManager().beginTransaction().replace的时候是替换不掉ViewGroup下面原生的View的(原生指的是在xml中定义的,不能动态切换的View),只能替换掉依附在上面的其他Fragment。
所以replace android.R.id.content的时候,如果没指定背景,会发现Fragment与原生界面发生重合,说明fragment不能替换掉原生的View。
所以想做成切换Activity那样的效果。就要在这么做:
1、Activity加载一个空界面。
2、onCreate时向android.R.id.content加入一个Fragment
3、切换时用另一个Fragment替换掉上述的Fragment。形成了类似Activity的切换效果。(过渡动画可以自定义)
2、getSupportFragmentManager与getFragmentManager不能混用,虽然它们两个效果是一样的,但是属于两个独立的Fragment管理体系,混用的话,就会发生重叠。(比如都向同一个容器replace Fragment,两者会同时出现)(应该没人会这么用吧)
3、不要以为FragmentActivity就是用来做类似Activity切换的用途,其实不要被名字迷惑,不过就是为了支持3.0以下支持Fragment的一个Activity而已。AppCompatActivity也是继承于FragmentActivity。用作最新SDK的设计风格显示。
4、Fragment真的很强大。主要两点感受:
1、模块化,将一个Activity分割成多个功能模块,方便管理、代码清晰、容易移植。
2、轻量切换,由于少了Activity的AMS调度,减少了不同界面之间切换的成本。做到应用提速。但是缺点就是由于都是一个Activity,不能外部直接调用某功能模块,建议类似功能做到同一Activity中,不同功能还是分开Activity
随手笔记,没空排版
相关文章推荐
- Codeforces 453A Little Pony and Expected Maximum
- New package not yet registered with the system. Waiting 3 seconds before next attempt解决方案
- [容器]STL之set容器详解
- U-Boot源码——start.S
- 在线编辑器自动添加<p></p>
- wamp配置虚拟主机
- 解决iOS9更新后http协议和https协议的问题
- spring-boot-maven-plugin 插件的作用
- wamp配置虚拟主机
- 二叉树的先序遍历 很有想法的递归与非递归实现
- wamp配置虚拟主机
- CentOS 6.5 下安装MySQL 5.7.12,使用官网下载的rpm安装包
- 手机性能测评之【开机】
- 蓝桥杯 排列序数
- thinkphp的model模型的设计经验总结
- 51CTO大数据学习003-抽象类、接口、内部类
- 最大子数组 两个经典解法(动态规划,分治法)
- thinkphp的model模型的设计经验总结
- JDBC连接SQL Server2014
- Android layer type与WebView白屏