现在的位置: 首页 > 综合 > 正文

Fragment和ViewPager组合用法小结

2013年10月28日 ⁄ 综合 ⁄ 共 1192字 ⁄ 字号 评论关闭

当ViewPage有5个界面时(5个Fragment):

1)程序启动,ViewPage默认会先加载前两个界面,调用生命周期Fragment1 onCreate-->onCreateView-->onCreateActivithy-->onStart-->onResume,

Fragment2 onCreate-->onCreateView-->onCreateActivithy-->onStart-->onResume;

2)滑动到第二个界面,会加载第三个界面Fragment3 onCreate-->onCreateView-->onCreateActivithy-->onStart-->onResume;

3) 滑动到第三个界面,会加载第四个界面Fragment4 onCreate-->onCreateView-->onCreateActivithy-->onStart-->onResume, 第一个界面Fragment1 onPause-->onStop;

4)滑动到第四个界面,会加载第五个界面Fragment5 onCreate-->onCreateView-->onCreateActivithy-->onStart-->onResume, 第二个界面Fragment2 onPause-->onStop;

5)滑动到第五个界面, 第三个界面Fragment3 onPause-->onStop;

6)滑回来的时候,此时Fragment的生命周期不再从onCreate开始,从五到四,调用第三个界面的生面周期Fragment3 onCreateView-->onCreateActivithy-->onStart-->onResume;

7)从四到三,生命周期调用第二个界面Fragment2 onCreateView-->onCreateActivithy-->(第五个界面Fragment5 onPause-->onStop)onStart-->onResume;

8)从三到二,生命周期调用第一个界面Fragment1 onCreateView-->onCreateActivithy-->(第四个界面Fragment4 onPause-->onStop)onStart-->onResume;

9)从二到一,第三个界面Fragment3 onPause-->onStop.

总结:ViewPage在加载界面时默认会保持当前和相邻界面为被创建和onResume状态,在滑动时会使非相邻界面进入停止(onPause-->onStop)状态,同时是新的相邻界面被创建(onCreate-->onCreateView-->onCreateActivithy-->onStart-->onResume)或被唤醒(onCreateView-->onCreateActivithy-->onStart-->onResume)

抱歉!评论已关闭.