第7章 UI fragment与fragment管理器

2018-11-06  本文已影响16人  yangpanRoy

使用fragment的优势:

fragment的生命周期:

启动:onAttach(Context)、onCreate(Bundle)、onCreateView() (全在setContentView()方法中调用)
创建:onActivityCreated(Bundle)
停止:onStart()、onDestroyView()
暂停:onResume()、onStop()
运行:onPause()
销毁:onDestroy()、onDetach()

activity托管fragment的两种方式

FragmentManager

FragmentManager类负责管理fragment并将它们的视图添加到activity的视图层级结构中。
FragmentManager类具体管理:

activity的FragmentManager负责调用队列中fragment的生命周期方法。添加fragment供FragmentManager管理时,onAttach(Context)、onCreate(Bundle)、onCreateView()方法会被调用。
托管activity的onCreate(Bundle)方法执行后,onActivityCreated(Bundle)方法也会被执行。
如果activity已经处于运行状态,此时添加fragment,FragmentManager会立即驱赶fragment,调用一系列必要的生命周期方法,快速跟上activity的步伐(与activity的最新状态保持同步)。

采用fragment的应用架构

fragment很灵活、具有很强的复用性。但是并不是为了复用组件就要把每一个组件用fragment来封装。应该仅仅封装关键组件,如果单屏就使用大量的fragment,不仅应用代码充斥着fragment事务处理,模块的职责分工也会不清晰。如果有很多零碎小组件想要复用,比较好的架构设计是使用定制视图(custom view)。一般来讲,单屏最多使用2-3个fragment。

上一篇 下一篇

猜你喜欢

热点阅读