前言:完成了GeoQuiz应用的开发之后,我们对Andriod的开发也有了一个初步的了解,其中对我帮助最大的莫过于MVC设计模板的应用,此设计模板的应用大大的简化了应用的复杂、难懂。接下来我们将会在以有的基础上加大难度,设计一个更加高大上的应用。
正言:我们这次设计的是一个名为CriminalIntent的应用,此应用可以用来详细记录各种办公室的陋习。CriminalIntent应用记载的陋习记录包括标题、日期和照片等,支持在联系人中查找当事人。可以说这个应用真的是十分的实用。
这个应用想要完成比较的麻烦,所以我今天先说说这第七章到第十三章,我所学到的知识,以及这些知识的一个总概。
首先我先给大家看一看这CriminalIntent应用完成的应用界面吧!
想要完成这个应用首先我们要引用两个从来都没听过的东西,它们就是UI fragment与fragment。下面我就来详细的介绍一下这两个管理器。(这两个 东西还是挺重要的,所以我在这里详细介绍,便于大家理解,也是让自己加深一下印象o(* ̄▽ ̄*)ブ)
·fragment是一种控制器对象, activity可委派它完成一些任务。这些任务通常就是管理用户界面。受管的用户界面可以是一整屏或是整屏的一部分。
·UI fragment指的是管理界面的fragment。它自己也有产生于布局文件的视图。
·fragment视图包含了用户可以交互的可视化UI元素。activity视图可预留供fragment视图插入的位置。如果有多个fragment要插入, activity视图也可提供多个 位置。根据应用和用户的需求,可联合使用fragment及activity来组装或重新组装用户界面。
·fragment 的设计不需要你来亲自管理view hierarchy 的复杂变化,通过将Activity 的布局分散到frament 中,可以在运行时修改activity 的外观,并且activity 管 理 的back stack 中保存些变化。当一个片段指定了自身的布局时,它能和其他片段配置成不同的组合,在活动中为不同的屏幕尺寸修改布局配置(小屏幕可能 每次 显示一个片段,而大屏幕则可以显示两个或更多)。
·fragment必须被写成可重用的模块。因为fragment有自己的layout,自己进行事件响应,拥有自己的生命周期和行为,所以你可以在多个activity中包含同一个 fragment的不同实例。这对于让你的界面在不同的屏幕尺寸下都能给用户完美的体验尤其重要。
·activity在其视图层级里提供一处位置用来放置fragment的视图,如下图所示。 fragment本身不具有在屏幕上显示视图的能力。因此,只有将它的视图放置在 activity的视图层级结构中, fragment视图才能显示在屏幕上。
Fragment的生命周期
1.当一个fragment被创建的时候,它会经历以下状态.。
onAttach()
onCreate()
onCreateView()
onActivityCreated()
2.当这个fragment对用户可见的时候,它会经历以下状态。
onStart()
onResume()
3.当这个fragment进入“后台模式”的时候,它会经历以下状态。
onPause()
onStop()
4.当这个fragment被销毁了(或者持有它的activity被销毁了),它会经历以下状态。
onPause()
onStop()
onDestroyView()
onDetach()
5.就像activitie一样,在以下的状态中,可以使用Bundle对象保存一个fragment的对象。
onCreate()
onCreateView()
onActivityCreated()
6.fragments的大部分状态都和activitie很相似,但fragment有一些新的状态。
onAttached() —— 当fragment和activity关联之后,调用这个方法。
onCreateView() —— 创建fragment中的视图的时候,调用这个方法。
onActivityCreated() —— 当activity的onCreate()方法被返回之后,调用这个方法。
onDestroyView() —— 当fragment中的视图被移除的时候,调用这个方法。
onDetach() —— 当fragment和activity分离的时候,调用这个方法。