zoukankan      html  css  js  c++  java
  • Android.15.Fragment 和 参数传递

    00. Fragment,就是一个子activity, 便于合理布局来达成应用; 可以做为Activity中的一个成员部分;

         

    01. Fragment的特性

         a. 具备生命周期;

         b. 必须委托在activity中才能运行;

    02. Fragment 的使用方法

        step1. 配置fragment模块

                 

         step2. 配置fragment布局(为便于控制,相应的组件对象需要配置id)

                 

         Step3.  配置Activity ,并添加 fragment

               

         Setp4.配置fragment,并关联相应的成员组件

              

       Step5. 最简易的fragment已经基本完成

              

      

        Step6. 一个Activity中,配置多个fragment

             

            *** 经测试,二个fragment的name,是可以一样的,只要二个fragment 的id不一样就行了

           

     03. 动态加载 fragment 

          step1. 配置activity, 

             

         Step2. Activity功能配置及效果

             

        Step3. 历史栈的现象

            a.未添加到历史栈中

            

          b. 添加到历史栈

            

    04. Activity 与 fragment 之间数据的传递

          Step1. 加载 fragment前,配置参数,并加入到 fragment中

           

         Step2. 获取和使用参数

            

     05. 通过接口单元进行通讯

          主体思想是构建一个接口单元,在Activity中创建 fragment 的时候,传入接口,在fragment中,通过传入的接口进行函数调用,以达到数据传输的需求

          Step1. fragment 界面配置

           

         Step2. 在Activity中配置交互布局

           

         Step3.接口定义

           

        Step4. fragment中功能按钮的配置及接口函数的调用

         

         Step5. 从 activity中逆向回调fragment中的相应业务

          

     06. Fragment生命周期

          a. 生命周期的过程

             

      fragement实际的生命轨迹,不一定是上图完整的流程,依据操作的不同,存在不同的轨迹

      为有效检测不同操作情况下,不同fragment 的生命轨迹,做出如下配置:

      Step1. Activity配置

                

       Step2. 二个fragment, 只配置背景色用以识别

       Step3.  为测试用的2 个fragment 配置完整的生命周期事件日志(override), 并做日志 --> 便于了解生命轨迹;

       Step4.  Activity 功能配置

               

       至此,准备工作已完成,现在将根据是否加入历史栈来分别跟踪不同情况下的fragment生命轨迹

    A: 不加入历史栈

     -------------------------------------------------------------------------------------------------------------------------------------------

            

    B: 加入历史栈

    ===================================================================================

             

      C:直接退出程序

    ====================================

    在退出程序前,二个fragment共执行了五组,在最后退出时,对应的五组全部释放

  • 相关阅读:
    IDEA tomcat 乱码( Catalina log localhost log server )
    idea的maven项目无法加载resources下的配置或是xml文件
    【MyBatis系列10】MyBatis日志如何做到兼容所有常用的日志框架
    【MyBatis系列9】彻底搞懂MyBatis插件原理及PageHelper原理
    【MyBatis系列8】带你彻底掌握MyBatis的缓存工作原理
    【MyBatis系列7】原来SqlSession只是个甩手掌柜,真正干活的却是Executor等四大对象
    idea 热部署Devtools
    git branch 命令查看分支、删除远程分支、本地分支【转】
    【转】elasticsearch 基础知识汇总
    【转】Elasticsearch究竟要设置多少分片数?
  • 原文地址:https://www.cnblogs.com/jieling/p/14789718.html
Copyright © 2011-2022 走看看