美文网首页
Fragment 应用场景 生命周期 与Activity的交互

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

作者: WaterYuan | 来源:发表于2019-05-28 18:44 被阅读0次

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

应用场景

  • 适配手机和平板
  • 一般主页的每个tab都是用Fragment,类似的一个页面下有多个布局需要切换的时候感觉用Fragment很方便。使用单个Activity+多个Fragment的方式,可以减少内存消耗,提升性能,且界面显示更灵活。
  • 面对非常复杂的页面时,可以把它拆分成几个fragment,这样就分担了activity的压力,activity只需要负责管理fragment的生命周期和数据传递,具体的业务逻辑由对应的fragmnet处理。
  • 当你一个Activity需要模块化的时候,你可以单独写一个Fragment并且嵌套在任何一个界面,不用担心重复代码。
  • 比如 App 中有一个新用户注册功能,包括设置用户名、密码、手机号等等流程,设计师在 UI 设计上将每个流程单独设计成一个界面,引导用户一步步操作。作为开发人员,如果将每一个完善信息的流程单独设置成一个 Activity 的话操作起来就比较繁琐,并且也不易于应用里的逻辑处理,而如果使用 Fragment 并结合回退栈的话,就非常合适了

生命周期
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标签即可

相关文章

  • 安卓常用生命周期图

    Activity生命周期 Fragment生命周期 Activity与Fragment 生命周期 GitHub上更...

  • Fragment 生命周期

    Fragment生命周期类似于Activity生命周期 onAttach()在fragment与Activity关...

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

    它是什么鬼,有什么用?我们可以把他看成一个小型的Activity,使用Fragment 我们可以把屏幕划分成几块,...

  • 重要组件

    fragment fragment的生命周期,与activity生命周期的关系; 添加删除代替fragment; ...

  • Android基础知识

    Activity与Fragment的生命周期 Activity: Activity生命周期须知:(1)onStar...

  • DialogFragment显示不出StatusBar

    场景 在业务框架搭建下,App只有一个Activity,各种页面都是Fragment与Fragment交互,在直播...

  • Fragment生命周期--学习笔记

    Fragment的生命周期 Fragment必须是依存与Activity而存在的,因此Activity的生命周期会...

  • Fragment与Activity的联系

    一、Fragment与Activity的生命周期 Fragment生命周期: 二、Fragment的使用,实现底部...

  • Fragment

    一、Fragment的生命周期 Fragment与ActivityFragment生命周期与Activity息息相...

  • Fragment详解

    Fragment生命周期 Fragment必须是依存与Activity而存在的,因此Activity的生命周期会直...

网友评论

      本文标题:Fragment 应用场景 生命周期 与Activity的交互

      本文链接:https://www.haomeiwen.com/subject/nrhjtctx.html