android

Fragment

2017-12-02  本文已影响0人  小竹子爱广播

一,Fragment知识概要
1,Fragment可以作为Activity界面的一部分组成出现;
2,可以在一个Activity中同时出现多个Fragment,并且
一个Fragment也可以在多个Activity中使用;
3,在Activity运行过程中,可以添加、移除或替换Fragment
4,Fragment可以响应自己的输入事件,并且有自己的生命周期,他们的生命周期
会受宿主Activity的生命周期影响

二,onCreateView()方法
Fragment第一次绘制Fragment的用户界面的时候,系统会调用这个方法,为了绘制
Fragmeng的UI,此方法必须返回一个View,如果不显示飞UI,返回null即可;

三,Fragment的加载方式
静态加载
动态加载

四,静态加载

在Activity的layout文件中声明Fragment,
<fragment>中的android:name的属性指定了飞在layout中实例化的Fragment类

标示Fragment的方法:
android:id 提供一个唯一的id
android:tag 提供一个唯一的字符串

五、动态加载
add() 添加一个Fragment到View中
remove()
replace()

处理Fragment事务 
 根据用户的交互情况,对Fragment进行添加、移除、替换,以及执行其他动作,提交给Activity的每一套变化被称为一个事务

FragmentManager fragmentManager =getFragmentManager();
FragmentTransaction beginTransation =fragmentManager.beginTransaction();

每一个事务都是同时执行一套变化,可以在一个事务中设置你所有想执行的变化,包括add(), remove(),replace(), 然后提交给

Activity,必须调用 commit()方法;

如果允许用户通过按下BACK按键返回到前一个Fragment状态,
调用commit()之前可以加入addToBackStack()方法

六, Fragment的生命周期
Activity State Fragment Callbacks
created() onAttach()
//当Fragment被添加到Activity的时候会调用一次,并且只调用一次
onCreate()
//创建Fragment的时候,会调用一次,并且只调用一次
onCreateView()
//每次创建Fragment中的View组件的时候,都会被回调一次
onActivityCreated()
//当Fragment所走的Activity启动完成的时候,会被调用一次
Started onStart()
//启动 Fragment
Resumed onResume()
//恢复Fragment时候会被回调,调用onStart()方法后面一定会调用他
Paused onPause()
//暂停 Fragment
Stopped onStop()
//停止Fragment
Destroyed onDestroyView()
      //销毁Fragment中的View组件的时候,会被调用一次
onDestroy()
//销毁Fragment时会被调用
onDetach()
// 从Activity中删除Fragment的时候,会回调该方法,并且这个方法
只会回调一次

     七,Fragment与Activity通信
           a, Fragment可调用getActivity()方法获取它所在的 Activity()
           b, Activity可调用FragmentManager的findFragmentById()或
            findFragmentByTag()方法获取Fragment

      七(一),从Activity向Fragment传递参数
                        在Activity中创建Bundle数据包,并调用Fragment的
                        setArguments(Bundle bundle)方法

       八(二),从Fragment向Activity传递参数

                       需要在Fragment中定义一个内部接口, 再让包含该Fragment的Activity实现该回调接口。这样Fragment可调用该回调方法将数据传递给Activity
上一篇 下一篇

猜你喜欢

热点阅读