1.对Fragment的理解
fragment是在Android3.0之后出现的,fragment必须嵌入一个activity中,他的生命周期受其宿主activity的影响.加载方式有两种
- 动态
1.开启一个新事务
2.通过事务添加Fragment
3.提交事务
FragmentManager fragmentManager = getFragmentManager();
//开启事务
FragmentTransaction beginTransaction = fragmentManager.beginTransaction();
Fragment1 fragment1 = new Fragment1();
beginTransaction.replace(android.R.id.content,fragment1);
//最后一步 记得commit
beginTransaction.commit();
- 静态.
2.Fragment的生命周期
onAttach() 绑定Fragment到Activity
onCreate() 创建Fragment
onCreateView() 创建Fragment的布局
onActivityCreated()Activity创建完成后回调此方法
onStart()可见,不可交互
onResume()可见可交互
onPause()部分可见,不可交互
onStop()不可见
onDestroyView()销毁Fragment的View对象
onDestroy() Fragment被销毁
onDetach() Fragment与Activity解绑
Activity和Fragment的异同
1、从最基础的开始说--->生命周期
Activity有7个生命周期:onCreate(); onStart(); onResume(); onPause(); onStop(); onDestroy(); onRestart();
Fragment有11个生命周期:onAttach(); onCreate(); onCreateView(); onActivityCreate(); onStart(); onResume(); onPause(); onStop(); onDestroyView(); onDestroy(); onDetach();
所以Fragment比较与Activity来说会更加灵活,因为生命周期多了,你可以控制的地方也就多了。
2、从灵活性上来说
- Fragment比Activity来说更加灵活,可以在XML文件中直接进行写入,也可以在Activity中动态添加;
- 可以使用show()/hide()或者replace()随时对Fragment进行切换,并且切换的时候不会出现明显的效果,用户体验会好;Activity虽然也可以进行切换,但是Activity之间切换会有明显的翻页或者其他的效果,在小部分内容的切换上给用户的感觉不是很好
Fragment与Activity如何相互
在Fragment中获取Fragment实例
通过getActivity()获取Context
网友评论