标签:
1.先add两个Fragment ,然后立马hide这两个Fragment ,再然后显示其中一个Fragment
//先add FragmentTransaction beginTransaction = getFragmentManager().beginTransaction(); videoFragment = new NewSDAndCloudVideoFragment(NewSDAndCloudVideoFragment.SRC_FROM_PLATFORM); sdFragment = new NewSDAndCloudVideoFragment(NewSDAndCloudVideoFragment.SRC_FROM_SD); beginTransaction.add(R.id.new_content_fl,videoFragment); beginTransaction.add(R.id.new_content_fl,sdFragment); beginTransaction.commit(); //在hide FragmentTransaction transaction = getFragmentManager().beginTransaction(); transaction.hide(webFragment); transaction.hide(videoFragment); transaction.hide(sdFragment); transaction.commit(); //在显示其中的一个Fragment FragmentTransaction transaction = getFragmentManager().beginTransaction(); transaction.show(videoFragment); transaction.commit();
其生命周期的显示如下:
I/Fragment_A(18015): onAttach I/Fragment_A(18015): onCreate I/Fragment_A(18015): onCreateView I/Fragment_A(18015): onActivityCreated I/Fragment_A(18015): onAttach I/Fragment_A(18015): onCreate I/Fragment_A(18015): onCreateView I/Fragment_A(18015): onActivityCreated I/Fragment_A(18015): onHiddenChanged : true I/Fragment_A(18015): onHiddenChanged : true I/Fragment_A(18015): onHiddenChanged : false I/Fragment_A(18015): onStart I/Fragment_A(18015): onStart I/Fragment_A(18015): onResume : isHiden =false I/Fragment_A(18015): onResume : isHiden =true
ps: 其创建过程 是一个Fragment 从 onAttach 到 onActivityCreated执行完成之后,在执行另为的一个, 然后交替执行 onStart 和 onResume
2. 如果只add两个Fragment 其生命周期如下
I/Fragment_A(27457): onAttach I/Fragment_A(27457): onCreate I/Fragment_A(27457): onCreateView I/Fragment_A(27457): onActivityCreated I/Fragment_A(27457): onAttach I/Fragment_A(27457): onCreate I/Fragment_A(27457): onCreateView I/Fragment_A(27457): onActivityCreated I/Fragment_A(27457): onStart I/Fragment_A(27457): onStart I/Fragment_A(27457): onResume : isHiden =false I/Fragment_A(27457): onResume : isHiden =false
3.如果添加完成然后再两个Fragment交替show 和 hide ,那么只会调用 onHiddenChanged, 其中返回其是否显示的状态
I/Fragment_A(27457): onHiddenChanged : true I/Fragment_A(27457): onHiddenChanged : false I/Fragment_A(27457): onHiddenChanged : true I/Fragment_A(27457): onHiddenChanged : false
I/Fragment_A(27457): onPause I/Fragment_A(27457): onPause I/Fragment_A(27457): onStop I/Fragment_A(27457): onStop I/Fragment_A(27457): onDestroyView I/Fragment_A(27457): onDestroy I/Fragment_A(27457): onDetach I/Fragment_A(27457): onDestroyView I/Fragment_A(27457): onDestroy I/Fragment_A(27457): onDetach
ps: 在销毁过程中, 交替指向 onPasue 和 onStop , 然后 一个一个执行 onDestroyView 到 onDetach 过程
了解Fragment 的add / show / hide 使用的生命周期后, 就可以准确的利用生命周期对业务逻辑进行处理了...
标签:
原文地址:http://blog.csdn.net/qq_24551315/article/details/51351715