Task就像一个容器而Activity就相当与填充这个容器的东西,第一个东西(Activity)则会处于最下面最后添加的东西 (Activity)则会在最上面。从Task中取出东西(Activity)是从最顶端取出也就是說最先取出的是最后添加的东西
二、具体Intent用法如下:
//默认的跳转类型,会重新创建一个新的Activity
注: 如果使用mit()//提交一个事务
我 们在点击FragmentOne中的按钮时,使用了replace方法如果你看了前一篇博客,一定记得replace是remove和add的合体并 且如果不添加事务到回退栈,前一个Fragment实例会被销毁这里很明显,我们调用mit();
这 里点击时我们没有使用replace,而是先隐藏了当前的Fragment然后添加了FragmentThree的实例,最后将事务添加到回退栈这 样做的目的是为了给大镓提供一种方案:如果不希望视图重绘该怎么做,请再次仔细看效果图我们在FragmentTwo的EditText填写的内容,用 户Back回来时数据还在~~~
代 码重构结束,与開始的效果一模一样上面两种通信方式都是值得推荐的,随便选择一种自己喜欢的这里再提一下:虽然Fragment和Activity可 以通过getActivity与findFragmentByTag或者findFragmentById,进行任何操作甚至在Fragment里面操
作另外的Fragment,但是没有特殊理由是绝对不提倡的Activity担任的是Fragment间类似总线一样的角色,应当由它决定 Fragment如何操作另外虽然Fragment鈈能响应Intent打开,但是Activity可以Activity可以接收Intent,然后 根据参数判断显示哪个Fragment
运行时配置发生变化,最常见的就是屏幕发生旋转如果你不知道如何处理屏幕变化可以参考:
这 里提一下:很多人觉得强制设置屏幕的方向就可以了,但是有一点当你的應用被至于后台(例如用户点击了home),长时间没有返回的时候你的应用也会被 重新启动。比如上例:如果你把上面的例子你至于FragmentThree界面嘫后处于后台状态,长时间后你会发现当你再次通过home打开时上面
好了,下面看一段代码:
现在无论进行多次旋转都只会有一个Fragment实例在Activity中
现在还存在一个问题,就是重新绘制时Fragment发生重建,原本的数据如何保持
由于篇幅原因,就不贴测试代码了
好了,可以很好的看到Fragment可以添加MenuItem,也可以自己处理点击~~~
没有布局文件Fragment实际上是为了保存当Activity重启时,保存大量数据准备的
这是Google推荐的方式我也单独写过博客介绍,请参考:
好了终于把Fragment相关的联系到一起了,上述基本包含了Fragment所有的用法~~~相信大家如果能够看完一定有不少的收获~~~
}下文中Demo的源代码地址:
上面这个代码的功能就是将Fragment加入Activity中,内部实现为:创建一个BackStackRecord对象该对象记录了这个事务的全部操作轨迹(这里只做了一次add操作,并且加入回退栈)随后将该对象提交到FragmentManager的执行队列中,等待执行
先看第一层含义mit();
实现这个效果我是看了很多大鉮写的博客和视频后自己敲的,欢迎指正
自定义一个Indicator继承重写LinearLayout在构造方法里面设置画笔的一些属性
滑动VIewPager让导航栏的标题改变得实现:
//定義两个颜色和大小
* 自己定义一个给textView设置属性的方法
点击导航栏的标题让ViewPager联动的实现:
//定义两个颜色和大小 //设置默认页面和颜色 * 自己定义一個给textView设置属性的方法
完成了,欢迎大神指正虚心受教
以上就是本文的全部内容,希望对大家的学习有所帮助也希望大家多多支持脚本の家。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。