Fragment 与Activity 如何互相传值
Fragment传值给Activity:
当Fragment与Activity绑定之后,Fragment中可以通过getActivity();获取Activity实例
Activity传值给Fragment:
FragmentManager fm = getFragmentManager();
Fragment fragment = fm.findFragmentByTag(tag);
Fragment fragment = fm.findFragmentById(id);
Fragment的生命周期
和Activity生命周期对应的生命周期方法
- onCreat(): 创建
- onAttach()
- onCreate()
- onCreateView()
- onActivityCreated()
- onStart():可见
- onStart()
- onResume():获取焦点
- onResume()
- onPause():失去焦点
- onPause()
- onStop():进入后台
- onStop()
- onDestroy():销毁
- onDestroyView()
- onDestroy()
- onDetach()
FragementManager的add和replace方法区别
fragementManager.add():
- Fragment 的容器是FrameLayout,add 的时候是把所有的Fragment 一层一层的叠加到了FrameLayout 上
fragementManager.replace():
- 而replace 的话先把容器中的其他Fragment 去除掉然后将当前Fragment 添加到容器中。
Fragment的切换方式
Fragment 容器中只能添加一个Fragment 种类,如果多次添加则会报异常
方式一:
- 把全部Fragment都add()进去,通过hide()和show()来切换显示
方式二:
- 通过replace()切换Fragment,但每次都会执行上个Fragment的onDestroyView() 和 新Fragment的onCreateView()、onStart()、onResume()
网友评论