zoukankan      html  css  js  c++  java
  • Android Fragment

    1. Fragment类:Android 3.0引入,代表Activity的子模块,有自己的生命周期,但也受Activity生命周期的控制,接受自己的输入事件。当Activity处于活动状态时,程序员可以通过方法独立操作Fragment,对于大多数Fragment会重写下面几个方法:
      • onAttach:当Fragment被添加到Activity时被调用,该方法只会被调用一次
      • onCreate:初始化view之外的对象,只会调用一次,在onAttach和onCreateView之间调用
      • onCreateView:返回View作为Fragment要显示的组件
      • onPause:离开Fragment时被调用
      • clipboard
      •  
    2. Fragment有如下特征:
      • Fragment可以调用getActivity获取它所在的Activity,Activity可以调用FragmentManager的findFragmentById或者findFragmentByTag方法获取Fragment对象,在Activity的运行过程中,可以调用FragmentTransaction的add(),remove(),replace()动态的添加删除或者替换Fragment
        操作fragment
      • 一个Activity可以同时组合多个Fragment,一个Fragment可以被多个Activity复用

    3. Activity中添加Fragment的方式:
      • 布局文件中使用<fragment android:name="fragment的实现类名">
      • 代码中通过FragmentTransaction对象的add()方法
    4. Fragment与Activity之间的通信
      • 在Activity中创建Bundle包,然后调用Fragment.setArguments方法即可把数据发给Fragment,Fragment中可以调用getArguments方法获取
      • Fragment向Activity传送数据,首先在Fragment中定义一个内部接口,让Activity实现该接口,这样Fragment中就可以回调Activity的方法把数据传给Activity

    5. fragment和activity生命周期最重要的不同之处是它们如何存储在各自的back stack中。
      Activity停止时,是存在一个由系统维护的back stack中,但是当fragment停止(被remove)时,需要程序员显示地调用addToBackStack() ,并且fragment是存在一个由宿主activity掌管的back stack中。

     

  • 相关阅读:
    BZOJ2243: [SDOI2011]染色
    BZOJ3747: [POI2015]Kinoman
    BZOJ1293: [SCOI2009]生日礼物
    BZOJ3626 [LNOI2014]LCA
    BZOJ3514 Codechef MARCH14 GERALD07加强版
    BZOJ3295 [CQOI2011]动态逆序对
    BZOJ2588 [SPOJ10628]Count on a tree
    BZOJ1036 [ZJOI2008]树的统计Count
    CODEVS1490 [CTSC2008]网络管理
    BZOJ1070 [SCOI2007]修车
  • 原文地址:https://www.cnblogs.com/phenixyu/p/3969085.html
Copyright © 2011-2022 走看看