Fragment的深入浅出
来源:互联网 发布:关于开关电源的软件 编辑:程序博客网 时间:2024/05/29 07:42
可以看到Fragment比Activity多了几个额外的生命周期回调函数:
onAttach(Activity); //当Activity与Fragment发生关联时调用
onCreateView(LayoutInflater,ViewGroup,Bundle); //创建该Fragment的视图
onActivityCreate(bundle); //当Activity的onCreate();方法返回时调用
onDestoryView(); //与onCreateView相对应,当改Fragment被移除时调用
onDetach(); //与onAttach()相对应,当Fragment与Activity的关联被取消时调用
注意:除了onCreateView,其他的所有方法如果你重写了,必须调用父类对于该方法的实现。
2.Fragment常用的API:
Fragment常用的三个类:
android.app.Fragment 主要用于定义Fragment
android.app.FragmentManager 主要用于在Activity中操作Fragment
android.app.FragmentTransaction 保证一些列Fragment操作的原子性,熟悉事务这个词,一定能明白~
a、获取FragmentManage的方式:
getFragmentManager() // v4中,getSupportFragmentManager
b、主要的操作都是FragmentTransaction的方法
FragmentTransaction transaction = fm.benginTransatcion();//开启一个事务
transaction.add()
往Activity中添加一个Fragment
transaction.remove()
从Activity中移除一个Fragment,如果被移除的Fragment没有添加到回退栈(回退栈后面会详细说),这个Fragment实例将会被销毁。
transaction.replace()
使用另一个Fragment替换当前的,实际上就是remove()然后add()的合体~
transaction.hide()
隐藏当前的Fragment,仅仅是设为不可见,并不会销毁
transaction.show()
显示之前隐藏的Fragment
detach()
将此Fragment从Activity中分离,会销毁其布局,但不会销毁该实例
attach()
将从Activity中分离的Fragment,重新关联到该Activity,重新创建其视图层次
transatcion.commit()//提交一个事务
注意:常用Fragment的哥们,可能会经常遇到这样Activity状态不一致:State loss这样的错误。主要是因为:commit方法一定要在Activity.onSaveInstance()之前调用。
2.getSupportFragmentManager()和getChildFragmentManager()的区别:在Fragment里面嵌套Fragment 的话,不要用getSupportFragmentManager(),会在ViewPager中出现。有些Fragment 不会加载的情况。既ViewPager 加载 Fragment 空白页的情况。
3.FragmentPagerAdapter与FragmentStatePagerAdapter的区别
http://blog.csdn.net/hknock/article/details/46741573
- Fragment的深入浅出
- Android Fragment完全解析,深入浅出解析fragment
- fragment嵌套fragment的管理
- fragment及fragment的通信
- fragment嵌套fragment的通信
- 深入浅出的故事
- 费曼的深入浅出
- 深入浅出Wince的存储
- 深入浅出Android的多线程
- 深入浅出Wince的存储
- iOS的视图深入浅出
- 接口的深入浅出
- 深入浅出的讲解傅里叶变换
- 深入浅出的 c指针
- 深入浅出的讲解傅里叶变换
- 深入浅出的讲解傅里叶变换
- 深入浅出的讲解傅里叶变换
- 深入浅出的讲解傅里叶变换
- input替换为a标签,onclick事件不触发
- 代理模式
- Python第三方库的安装方法
- 极光推送1
- Python游戏开发
- Fragment的深入浅出
- 多线程编程与同步控制(Java与C)
- 【详解】更新整个maven工程及相关底层并再运行的记录
- asp.net 母版页使用详解
- dos批处理:列出指定目录下所有文件
- Linux环境Tomcat运行报错java.lang.OutOfMemoryError
- spring security 转
- 用于web类库代码的单元测试
- Qt之认识JSON