FragmentPagerAdapter中fragment的生命周期
今天用TabLayout+ViewPager的方式,实现了顶部的导航栏切换效果(https://blog.csdn.net/NNadn/article/details/89239877)。
在onResume方法中实现对数据的请求,发现并不是在fragment显示的时候会调用对应fragment的onResume方法,也不会在显示其他fragment现实的时候,调用这个fragment的onPause和onStop方法,不解。
后来好好看了下,发现了规律。
我一共使用了4个fragment,按照index一下分别简称为0、1、2、3。
下面只提到了关键方法。
- 进入activity的时候,0的onStart、onResume,紧接1的onStart、onResume,01就绪;
- 划到1,2的onStart、onResume,012就绪;
- 划到2,3的onStart、onResume,0的onPause、onStop,123就绪;
- 划到3,1的onPause、onStop,23就绪;
- 再划回2,1的onStart、onResume,123就绪;
- 划回1,0的onStart、onResume,3的onPause、onStop,012就绪。
- ···
规律就是,当前的fragment,前一个,后一个,都已经执行完毕onResume,处于就绪状态。