05_Fragment

Fragment为什么叫第五组件?

Fragment 的使用都是依赖activity ,并且有自己生命周期

Fragment生命周期

onAttach:与activity关联的时候调用

onCreate(Bundle  bun): 初始化fragment 可通过参数savedInstanceState获取之前保存的值

onCreateView: 加载布局

----------

onActivityCreate(); Activity执行onCreate之后调用

onStart: 有不可件变成可见

onResume  可见可交互

onpause:暂停状态 可见不可交互

onstop: 完全不可见

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

onDestoryView:移除布局,但未与activity接除绑定仍然可以以通过 oncreateView 重新创建视图 通常在viewpage+fragment中使用

onDestory:销毁fragment  通常按back键或者被回收是掉用

onDetach:Fragment和Activity解除关联的时候调用。在onDestroy方法之后调用。


=======使用fragment的方式

1:在xml布局中使用 添加name属性 指定Fragment

2:在代码中 使用


add  remove  replace 的区别


1:使用add 一般都需要 配合 hine (隐藏)show(显示)fragment

一般会配合hide使用:transaction.add(R.id.fragment_container, oneFragment).hide(twoFragment).commit();

2:同一个容器中不允许添加相同的 fragment 

3:使用add添加fragemnt 不会对其他fragemnt生命周期产生影响


replace

  1.替换会把容器中的所有内容全都替换掉,有一些app会使用这样的做法,保持只有一个fragment在显示,减少了界面的层级关系

最合适的处理方式是这样的:

1.在add的时候,加上一个tab参数

transaction.add(R.id.content, IndexFragment,”Tab1″);

2.然后当IndexFragment引用被回收置空的话,先通过

IndexFragment=FragmentManager.findFragmentByTag(“Tab1″);

找到对应的引用,然后继续上面的hide,show;


=========传递值

Activity 给fragment 参数

1: fragment.setArguments(bundle)

2:在Activity中使用fragment 对象 调用fragment中的

fragment给Activity传参数

1;在fragment定义一个接口 

1.2:在onAttach 绑定依赖的activity

1.3:依赖的activity 实现fragment中的方法


 1;//定义一个回调接口 public interfaceCallBackValue{

        public void SendMessageValue(String strValue); 

    } 

2: 

    @Override 

    public void onAttach(Activity activity) { 

        // TODO Auto-generated method stub          super.onAttach(activity); 

 //当前fragment从activity重写了回调接口得到接口的实例化对象         

 callBackValue =(CallBackValue) getActivity(); 

    } 

3: MxxActivity extends Activity implements CallBackValue

fragment给fragment 传值

调用共有的activity 在 activity  添加get和set方法

你可能感兴趣的:(05_Fragment)