Fragment各种情况下的生命周期
正常情况下的生命周期是:onAttach-->onCreate()-->onCreateView-->onActivityCreated-->onStart-->onResume-->onPause-->onStop-->onDestoryView--> onDestory()-->onDetach()
如果添加到backStack中,调用remove()方法fragment的方法会走到onDestoryView,但不会执行onDetach().即fragment本身的实例是存在的,成员变量也存在,但是view被销毁了,如果新替换的Fragment已在BackStack中,则不会执行onAttch-->onCreate
Fragment状态保存onSaveInstanceState是哪个类的方法,在什么情况下使用?
在对应的FragmentActivity.onSaveInstanceState方法会调用FragmentController.saveAllState,其中会对mActive中各个Fragment的实例状态和View状态分别进行保存,当Activity在做状态保存和恢复的时候,在它其中的fragment自然也需要做状态保存和恢复。
此外还想介绍一下:
Fragment.startActivityForResult是和FragmentActivity的startActivityForResult的区别?
如果希望在Fragment的onActivityResult接收数据,就要调用Fragment.startActivityForResult,而不是Fragment.getActivity().startActivityForResult.
如何实现Fragment的滑动效果? 使用Viewpager+FragmentPagerAdapter+List
fragment之间传递数据的方式?
1).在相应的fragment中编写方法,在需要回调的fragment里获取对应的Fragment实例,调用相应的方法;
2)采用接口回调的方式进行数据传递; a)在Fragment1中创建一个接口及接口对应的set方法;b)在Fragment1中调用接口的方法: c)在fragment2中实现该接口
3)使用第三方开源框架EventBus