《Android编程权威指南》第7章读书笔记

Fragment

FragmentActivityActivity的子类,具有新版本Activity类管理fragment的能力,即便是在较早版本的Android设备上也可对fragment进行管理。

为托管UI fragmentActivity必须做到

1.在布局中为fragment的视图安排位置;

2.管理fragment实例的生命周期。

Fragment生命周期

缺图,后面补上。

注:Activity生命周期方法由OS调用,fragment生命周期由托管的Activity调用。

Activity托管UI fragment的两种方式:

1.添加fragmentActivity布局XML文件中;

2.在Activity代码添加fragment。

第一种方式简单却不够灵活。添加fragment到Activity布局中,就等于将fragment及其视图绑定到Activity的视图,布局的复杂程度会增加,而且在Activity的生命周期中,无法切换fragment视图。

第二种方式比较复杂但却是唯一一种可以在运行时控制fragment的方式。(为了UI的灵活性,通常使用这种做法)采用第二种方式也需要在Activity布局中使用FrameLayoutfragment安排位置,FrameLayout是一个通用性视图,可以托管多个fragment

注意:

1.Fragment.onCreate()public,而Activity.onCreate()protected。因为需要被托管的fragment的任何Activity调用,因此Fragment的生命周期方法都被设计为public

2.类似于ActivityFragment也有onSaveInstanceState()来保存和获取状态的bundle

3.在Fragment.onCreate()中虽然配置了fragment实例但是没有生成视图;创建和配置视图是在onCreateView()里面实现的,将生成的View返回给托管的Activity

添加UI fragmentFragmentManagerFragmentManager具体管理:

1.fragment队列(调用队列中fragment的生命周期方法);

2.fragment事物的回退栈。

注意:因为使用了support库和FragmentActivity(为了兼容之前不支持Fragment的系统版本),FragmentManager的创建通过调用getSupportFragmentManager();不考虑兼容的话,直接继承Activity,调用getFragmentManager()即可。

Fragment事务

Fragment事务被用来添加、移除、附加、分离或替换Fragment队列中的fragment

FragmentTransaction实例由FragmentManager.beginTransacion()创建并返回。

1.创建事务实例;

2.调用添加、移除、附加、分离或替换的方法;

3.commit()提交事务。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容