Fragment 应用场景 生命周期 与Activity的交互

2019-05-28  本文已影响0人  WaterYuan

它是什么鬼,有什么用?
我们可以把他看成一个小型的Activity,使用Fragment 我们可以把屏幕划分成几块,然后进行分组,进行一个模块化的管理!从而可以更加方便的在运行过程中动态地更新Activity的用户界面!Fragment并不能单独使用,他需要嵌套在Activity中使用,故称Activity片段。

应用场景

生命周期
onAttach()
onCreate()
onCreateView()
onActivityCreated()
onStart()
onResume()
onPause()
onStop()
onDestroyView()
onDestroy()
onDetach()

onViewCreated()不是生命周期中的方法,但介于onCreateView()、onActivityCreated()之间执行,用于初始化控件资源

Fragment与自定义View
1.需要重用的界面(也可以使用自定义view);
2.需要重用,但是和生命周期有关联的界面(只能使用Fragment)。因为只有Fragment有自己的生命周期,自定义view是不会有自己的生命周期的。

Fragment与Activity的交互

1)组件获取
Fragment获得Activity中的组件: getActivity().findViewById(R.id.list);
Activity获得Fragment中的组件(根据id和tag都可以):getFragmentManager.findFragmentByid(R.id.fragment1);
2)数据传递
①Activit传递数据给Fragment:

在Activity中创建Bundle数据包,调用Fragment实例的setArguments(bundle) 从而将Bundle数据包传给Fragment,然后Fragment中调用getArguments获得 Bundle对象,然后进行解析就可以了

②Fragment传递数据给Activity

在Fragment中定义一个内部回调接口,再让包含该Fragment的Activity实现该回调接口, Fragment就可以通过回调接口传数据了

Fragment与Activity的交互

Fragment、Activity的生命周期方法及其常见的非生命周期方法的调用顺序.png

代码场景演示:https://blog.csdn.net/asdf717/article/details/51383750
参考:
5.1 Fragment基本概述
https://developer.android.google.cn/guide/components/fragments?hl=zh_cn
对于Fragment的一些理解


静态加载
Activity的xml中使用fragment标签name属性指定Fragment的全限定类名
动态加载
Activity的xml中使用不指定name属性的fragment标签报错,使用
FrameLayout标签即可

上一篇 下一篇

猜你喜欢

热点阅读