简述Fragment的作用
2017-12-12 · 让每个孩子都能正常讲话,是我们最大的心愿
Fragment 是什么
今天我们来学习一个比较重要的组件--Fragment。Fragment在应用开发中应用得非常的频繁,特别是在开发一些需要兼容手机设备、平板设备和智能电视等大屏幕设备的应用,Fragment发挥着重要的作用。那说了这么多,Fragment到底是什么呢?在这里我们先简单的用一句话总结就是:Fragment是Android为了应用适配不同设备的大屏幕、支持更加动态和灵活的UI设计所提供的一个组件。
说到Fragment,就会联想到Activity,因为Fragment对象在应用中一般是不能独立存在的,它必须嵌入到activity中,而且Fragment的生命周期直接受所在的activity的影响。例如:当activity暂停时,他拥有的所有的Fragment都暂停了,当activity销毁时,他拥有的所有Fragment都被销毁。然而,当activity运行时(在onResume()之后,onPause()之前),可以单独地操作每个Fragment,比如添加或删除它们。当中执行上述针对Fragment的事务时,可以将事务添加到一个栈中,这个栈被activity管理,栈中的每一条都是一个Fragment的一次事务。有了这个栈,就可以反向执行Fragment的事务,这样就可以在Fragment级支持“返回”键(向后导航)。
当向activity中添加一个Fragment时,它须置于ViewGroup控件中,并且需定义Fragment自己的界面。可以在layout.xml布局文件中声明Fragment,元素为:<fragment>;也可以在代码中创建Fragment,然后把它加入到ViewGroup控件中。然而,Fragment不一定非要放在activity的界面中,它可以隐藏在后台为activity工作。
Android在3.0之后引入了Fragment的概念,主要目的是用在大屏幕设备-例如平板电脑上,以便支持更加动态和灵活的UI设计。平板电脑的屏幕尺寸比手机大得多,因此有更多的空间来存放更多的UI组件,并且这些组件之间会产生更多的交互。Fragment允许这样的一种设计,而不需要你亲自来管理viewhierarchy的复杂变化。通过将Activity的布局分散到Fragment中,你可以在运行时修改Activity的外观,并在由Activity管理的Back
stack中保存那些变化。
例如,一个新闻应用可以在屏幕的左侧使用一个Fragment来展示一个文章的列表,然后在屏幕右侧使用另一个Fragment来展示一篇文章,两个Fragment并排显示在相同的一个Activity中,并且每一个Fragment拥有它自己的一套生命周期回调方法,并且处理它们自己的用户输入事件。因此,取代使用一个activity来选择一篇文章而另一个activity来阅读文章的方式,用户可以在同一个activity中选择一篇文章并且阅读,如图所示