android fragment学习总结
2015-07-20 21:58
555 查看
一、对fragment的了解
fragment是activity的一部分,一个activity可以由多个fragment组成。fragment拥有自己的生命周期和接收、处理用户的事件,但是它的生命周期受它所在的activity影响。
![](https://img-blog.csdn.net/20150720220559384?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
二、如何使用
新建一个类继承Fragment,重写onCreateView(),这个方法里面写fragment的内容,最后return一个view出来;
业务逻辑都可以写到fragment这个类里面,这样activity里面就会看起来很干净;
1)静态
在activity对应的xml中写<Fragment name="fragment的类全名">;
2)动态
在activity对应的xml中写一个容器如LinearLayout\FrameLayout等,设id为blankFragment;
在activity类继承fragmentActivity;
添加成员变量 FragmentManager fm;FragmentTransaction ft;
fm = getSupportFragmentManager();
实例化自己的fragment类;
fm.beginTransaction().replace("blankFragment",刚刚实例化后的对象).commit();
完成替换;
三、fragment优化
fragment除了replace方法外还有其他操作方法。
idAdded()
add()
remove()
hide()
show()
replace()其实就是remove()与add()的结合。
当频繁切换fragment或者fragment每次出现时上面的业务逻辑都不需要初始化的时候,我们可以选择用
hide()show()来完成。
在调用show()或者hide()的时候要判断下这个fragment是否被fm管理着,调用isAdded()来判断。
四、通信
1)
如果要传递dto,在安卓里面建议让dto实现Parcelable接口;
bundle.putParcelable("dto",dto);
fragment.setArguments(Bundle b);
在fragment里面调用getArguments()获得bundle;
2)
用的最多的一招:接口回调。
fragment是activity的一部分,一个activity可以由多个fragment组成。fragment拥有自己的生命周期和接收、处理用户的事件,但是它的生命周期受它所在的activity影响。
二、如何使用
新建一个类继承Fragment,重写onCreateView(),这个方法里面写fragment的内容,最后return一个view出来;
业务逻辑都可以写到fragment这个类里面,这样activity里面就会看起来很干净;
1)静态
在activity对应的xml中写<Fragment name="fragment的类全名">;
2)动态
在activity对应的xml中写一个容器如LinearLayout\FrameLayout等,设id为blankFragment;
在activity类继承fragmentActivity;
添加成员变量 FragmentManager fm;FragmentTransaction ft;
fm = getSupportFragmentManager();
实例化自己的fragment类;
fm.beginTransaction().replace("blankFragment",刚刚实例化后的对象).commit();
完成替换;
三、fragment优化
fragment除了replace方法外还有其他操作方法。
idAdded()
add()
remove()
hide()
show()
replace()其实就是remove()与add()的结合。
当频繁切换fragment或者fragment每次出现时上面的业务逻辑都不需要初始化的时候,我们可以选择用
hide()show()来完成。
在调用show()或者hide()的时候要判断下这个fragment是否被fm管理着,调用isAdded()来判断。
四、通信
1)
如果要传递dto,在安卓里面建议让dto实现Parcelable接口;
bundle.putParcelable("dto",dto);
fragment.setArguments(Bundle b);
在fragment里面调用getArguments()获得bundle;
2)
用的最多的一招:接口回调。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories