安卓Fragment

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()

你可能感兴趣的:(安卓Fragment)