Fragment使用笔记(二)

╄→尐↘猪︶ㄣ 提交于 2020-08-14 05:39:16

Fragment + ViewPager(appcompat)

Fragment生命周期变化

首次加载

  1. HomeFragment: setUserVisibleHint: false
  2. QuoteFragment: setUserVisibleHint: false
  3. HomeFragment: setUserVisibleHint: true
  4. HomeFragment: onAttach
  5. HomeFragment: onCreate
  6. QuoteFragment: onAttach
  7. QuoteFragment: onCreate
  8. HomeFragment: onViewCreated
  9. HomeFragment: onActivityCreated
  10. HomeFragment: onStart
  11. HomeFragment: onResume
  12. QuoteFragment: onViewCreated
  13. QuoteFragment: onActivityCreated
  14. QuoteFragment: onStart
  15. QuoteFragment: onResume

点击第二个Fragment

  1. TradeFragment: setUserVisibleHint: false
  2. HomeFragment: setUserVisibleHint: false
  3. QuoteFragment: setUserVisibleHint: true
  4. TradeFragment: onAttach
  5. TradeFragment: onCreate
  6. TradeFragment: onViewCreated
  7. TradeFragment: onActivityCreated
  8. TradeFragment: onStart
  9. TradeFragment: onResume
  10. Fragment: Main Page Selected: 1

点击第四个Fragment

  1. MyFragment: setUserVisibleHint: false
  2. FinanceFragment: setUserVisibleHint: false
  3. QuoteFragment: setUserVisibleHint: false
  4. MyFragment: setUserVisibleHint: true
  5. MyFragment: onAttach
  6. MyFragment: onCreate
  7. FinanceFragment: onAttach
  8. FinanceFragment: onCreate
  9. MyFragment: onViewCreated
  10. MyFragment: onActivityCreated
  11. MyFragment: onStart
  12. MyFragment: onResume
  13. FinanceFragment: onViewCreated
  14. FinanceFragment: onActivityCreated
  15. FinanceFragment: onStart
  16. FinanceFragment: onResume
  17. Fragment: Main Page Selected: 4
  18. TradeFragment: onPause
  19. TradeFragment: onStop
  20. QuoteFragment: onPause
  21. QuoteFragment: onStop
  22. HomeFragment: onPause
  23. HomeFragment: onStop

点击第一个Fragment

  1. HomeFragment: setUserVisibleHint: false
  2. QuoteFragment: setUserVisibleHint: false
  3. MyFragment: setUserVisibleHint: false
  4. HomeFragment: setUserVisibleHint: true
  5. HomeFragment: onViewCreated
  6. HomeFragment: onActivityCreated
  7. HomeFragment: onStart
  8. HomeFragment: onResume
  9. QuoteFragment: onViewCreated
  10. QuoteFragment: onActivityCreated
  11. QuoteFragment: onStart
  12. QuoteFragment: onResume
  13. Fragment: Main Page Selected: 0
  14. FinanceFragment: onPause
  15. FinanceFragment: onStop
  16. MyFragment: onPause
  17. MyFragment: onStop

退出页面

  1. HomeFragment: onDestroy
  2. HomeFragment: onDetach
  3. QuoteFragment: onDestroy
  4. QuoteFragment: onDetach
  5. TradeFragment: onDestroy
  6. TradeFragment: onDetach
  7. MyFragment: onDestroy
  8. MyFragment: onDetach
  9. FinanceFragment: onDestroy
  10. FinanceFragment: onDetach
小结:
  • 支持预加载布局,可根据业务需要预加载数据
  • userVisible = true并且onResume才是可见
  • userVisible = false(首次创建触发)才是不可见
  • attach之后的Fragment不会被detach,直到页面销毁才会被detach,即Fragment可复用
  • Fragment中View默认不能复用
  • 最多只有三个Fragment同时处于onResume状态,分析是为了实现左右滑动预览的功能
  • 不建议Fragment + ViewPager再次嵌套Fragment + ViewPager,生命周期过于复杂,因为预加载一级中不显示的Fragment时,会预加载二级的第一个Fragment和第二个Fragment,如果嵌套过深,可想而知会预加载多少不可见的Fragment
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!