Fragment

Fragment
概念:
Fragment是在Android 3.0 (API level 11)开始引入新的API技术。
为了提高代码重用性和改善用户体验,我们将Activity中的UI组件进行分组和模块化管理。这些分组后的UI组件就是Fragment。
一个Activity页面中可以包含多个Fragment模块,而同一个Fragment模块也可以被多个Activity使用。每个Fragment有自己的布局,有自己的生命周期。虽然Fragment拥有自己的生命周期,但因为Fragment必须被嵌入到Activity中使用,因此Fragment的生命周期是受其Activity宿主的生命周期所控制的。当Activity暂停时,该Activtiy内的所有Fragment都会暂停;当Activity被销毁时,该Activity内的所有Fragment都会被销毁。

局部内容切换,UI模块的布局和代码重用,有生命周期
这里写图片描述
fragment的定义:
自定义类继承于Fragment, android.support.v4.app.Fragment
生命周期方法:
1、onAttach(): 当该Fragment被添加到Activity时被回调。该方法只会被调用一次;

2、onCreate(): 当创建Fragment时被回调。该方法只会被调用一次;

3、onCreateView():每次创建、绘制该Fragment的View组件时回调该方法,Fragment将会显示该方法返回的View 组件;

4、onActivityCreated(): 当Fragment的宿主Activity被启动完成后回调该方法;

5、onStart(): 启动Fragment时被回调;

6、onResume(): onStart()方法后一定会回调onResume()方法;

7、onPause(): 暂停Fragment时被回调;

8、onStop(): 停止Fragment时被回调;

9、onDestroyView(): 销毁该Fragment所包含的View组件时调用;

10、onDestroy(): 销毁Fragment时被回调。该方法只会被调用一次;

11、onDetach(): 将Fragment从Activity中删除、替换完成时调用该方法。onDestroy()方法后一定会回调onDetach()方法。
该方法只会被调用一次。

这里写图片描述
Activity中有一个Fragment,Fragment里有一个View.

FragmentManager,Fragment管理者

Fragment的使用1静态2动态
一 静态
在activity中添加标签
可以通过fragmentManager.findFragmentById()获取到静态fragment对象
【备注:】
标签的android:id 和 android:tag属性必须至少有一个,同一个xml文件中id或tag必须唯一;
标签的class 和 android:name属性功能完全相同,使用其中任何一个即可。
二 动态
这里写图片描述
相互传值
不管动态加载或者静态加载,fragment向activity传值都可以使用接口回调的方式
activity向fragment:官方推荐动态加载的时候使用setArguments(Bundle),传值
Arguments(Bundle)取值。
静态加载 不能使用setArguments
add() remove() replace() hide() show()
返回上一个fragment popbackstack 返回键监听
这里写图片描述
这里写图片描述
newInstance()
这里写图片描述

发布了23 篇原创文章 · 获赞 15 · 访问量 3万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章