Fragment的使用

来源:互联网 发布:开淘宝店铺多少钱 编辑:程序博客网 时间:2024/04/30 03:41
  1. 方法:
    • onCreateView()方法
      • Fragment第一次绘制他的用户界面的时候,系统会调用这个方法,为了绘制Fragment的UI,此方法会返回一个View,如果不显示的话,就返回一个null;。
  2. Fragment的加载方式:
    • 动态加载
      • 撰写代码,将Fragment添加到一个Activity layout中 add():添加一个Fragment(指定添加的fragment和插入的View),于此类似的还有remove()、replace()
      • 根据用户的交互情况,对Fragment进行添加,移除,替换,以及执行其他动作,提交给Activity的每一套变化,称作为一个事务
        • FragmentManager fragmentManager=getFragmentManager();
        • FragmentTransaction beginTransaction=fragmentManager.beginTransaction();
      • 处理Fragment事务
        • 每一个事务都是同时执行一套变化,可以在一个事务中设置你所有向执行的变化,包括add,remove,replace,然后提交给Activity,必须调用commit()方法
        • 如果允许用户通过按下BACK案件返回之前一个Fragment状态,调用commit之前可以加入addToBackStack()方法
  3. 思路:
    1. 主函数,也就是我们的MainActivity函数内,主要就是加载显示的Activity的界面,以及跳转
      • 我们通过,
        MyFragment  fragment=new MyFragment();
        FragmentManager fragmentManager=getFragmentManager();
        FragmentTransaction fragmentTransaction=fragmentManager.beginTransaction().replace(R.id.frame_ll,fragment);
        fragmentTransaction.addToBackStack(null);
        fragmentTransaction.commit();
      • 来实现Fragment的显示
      • 需要注意的就是
      • FragmentTransaction fragmentTransaction=fragmentManager.beginTransaction().replace(R.id.frame_ll,fragment);
      • R.id.frame_ll,就是你要把Fragment放到什么地方去的ID。
    2. MyFragment类:
      • 首先要继承Fragment类,然后实现其中,onCreate,onCreateView,onPause,这三个方法先要实现。
      • 然后在onCreateView中,添加
        View view = inflater.inflate(R.layout.fragment, null);
      • 这句话,因为onCreateView返回值是View类型的,所以我们需要定义一个View类型的变量去接收值。
      • R.layout.fragment 这是你写的一个,带有<fragment>标签的一个XML文件。
    3. 布局略(因人而异,开心就好)
  4. Fragment的生命周期
    • 当Activity进入Create,因为,Fragment是嵌入Activity中的,所有,要现有Activity再有Fragment,所以,程序,先执行Activity的创建,然后才是Fragment。同理可得,Started,resumed,Activity先执行,然后开始执行Fragment;
    • 当程序进入Paused,Stopped,Destroyed,状态的时候呢,正是因为Fragment和Activity是嵌入关系,所以,就是Fragment先于Activity执行。与创建,相反。
    • 在Fragment中,创建是,先创建Fragment,然后在创建View,销毁则是,先销毁View然后再销毁Fragment。
  5. 使用回退栈时候的生命周期
    • 进入第一个Fragment时候
      • onAttach
      • onCreate
      • onCreateView
      • onActivityCreated
      • onStart
      • onResume
    • 进入第二个Fragment时候,第一个的生命周期(第二个的生命周期和第一次进入第一次的生命周期类似)
      • onPause
      • onStop
      • onDestroyView
    • 回退上一个Fragment生命周期
      • onCreateView
      • onActivityCreated
      • onStart
      • onResume
      • 因为,你进入第二个Fragment的时候是销毁的onDestroyView,所以,回退的时候,也应该是从onCreateView开始的。
1 0