Fragment总结

总结: 1、FragmentActivity 为了支持Honeycomb之前的版本 2 activity与fragment的区别:

  • fragment的生命周期由Activity托管,是Activity内部的事~
3 在Activity中托管fragment两种方式:
  • 添加fragment到Activity的布局文件xml中:简单,但不灵活,且将fragment及其师徒于Activity的视图绑定一起,在Activity的生命周期过长无法切换fragment
  • 在Activity的代码动态添加fragment:唯一可以在运行时控制fragment的方式。使用方法如下:
    • 1 定义xml布局文件
    • 2 创建fragment java类,并在onCreateView中绑定布局
    • 3 通过代码方式,连接布局文件中生成的组件:即通过FragmentManger来管理
4 动态绑定fragment布局方法中:
  • Fragment.onCreate()方法是public,Activity.onCreate()方法是proctected
  • fragment也有保存和获取状态的bundle
  • fragment使用onCreateView方法来生成布局:如下图所示

  • FragmentManger类具体管理fragment队列和fragment回退栈:使用代码如下
    • FragmentManager fm = getFragmentManager();  //或者getSupportFragmentManager() FragmentTransaction tx = fm.beginTransaction();  // 创建并返回FragmentTransaction 实例 tx.add(R.id.id_content, mFOne, "ONE");   tx.commit(); 
    • tx.add(R.id.id_content, mFOne, "ONE");  方法中第一个参数是视图资源id,主要有两点作用:
      • 告知FragmentManager fragment视图应该出现在activity视图的什么地方
      • 是告知FragmentManager队列中fragment的唯一标示符。
    • 增加tx .add()、删除()、替换tx.replace()   。
    • 回退栈FragmentTransaction.addToBackStack(String)。使用replace和tx.addToBackStack(null);将当前的事务添加到了回退栈,所以FragmentOne实例不会被销毁,但是视图层次依然会被销毁(比如有EditView里面输入的数据不会保存),即会调用onDestoryView和onCreateView。
    • 如果想保存上一次数据则使用tx.hide(this); tx.add(),tx.addToBackStack

5、Fragment家族常用的API

Fragment常用的三个类:

android.app.Fragment  定义Fragment

android.app.FragmentManager 主要用于在Activity中操作Fragment

android.app.FragmentTransaction 保证一些列Fragment操作的原子性


Fragment介绍的Blog:http://blog.csdn.net/lmj623565791/article/details/37970961


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部