Fragment详解(一):Fragment简介
2016-03-23 14:22
363 查看
Fragment是在Android3.0 (API 11)引入的,可以翻译为片段。Fragment拥有自己的生命周期,但是Fragement必须始终嵌入在 Activity 中,其生命周期直接受宿主 Activity 生命周期的影响。 例如,当 Activity 暂停时,其中的所有Fragment也会暂停;当 Activity 被销毁时,所有Fragement也会被销毁。 不过,当 Activity 正在运行时,您可以独立操纵每个Fragment,如添加或移除它们。 当您执行此类Fragment事务时,您也可以将其添加到由 Activity 管理的返回栈—Activity 中的每个返回栈条目都是一条已发生Fragment事务的记录。 返回栈让用户可以通过按“返回”按钮撤消Fragment事务(后退)。
Fragment设计的初衷主要是为了给大屏幕(如平板电脑)上增加动态和灵活的UI设计提供支持。由于平板电脑的屏幕比手机屏幕大得多,因此可以用于组合和交换UI组件的空间更大。利用Fragment实现此类设计时,你无需管理对视图层次结构的复杂更改。通过将Activity布局分成片段,你可以在运行时修改Activity的外观,并在由Activity管理的返回栈中保留这些更改。可能这样说有些抽象,我们结合官方给出的一张图片来说明一下。
![](https://img-blog.csdn.net/20160323142207820)
常见的手机新闻类应用布局如上图右侧布局,其中第一个Activity用来展示新闻列表,当我们点击列表中的某项时会跳转到下一个Activity从而展示具体的新闻详情。
但是同样的应用在平板上在使用这样的设计就不太好了。因为平板的屏幕太大,这么大只展示一个列表未免太浪费了。所以设计上使用如上图左侧的布局来展示,其结构是Activity中包含了两个Fragment(左右),其中左侧的Fragment用于展示新闻列表,右侧的Fragment用于展示详细新闻内容。当我们点击新闻列表的时候右侧的Fragment会动态的更改内容。
采用了Fragment将屏幕分为不同的片段,合理的利用了整个屏幕,同时大大的提升了用户体验。一举多得啊。
关于Fragment设计思想就撤这么多吧,大家可以发散思维,发觉更多的用法,接下来我们还是看看Fragment到底是怎样使用的吧。
Fragment设计的初衷主要是为了给大屏幕(如平板电脑)上增加动态和灵活的UI设计提供支持。由于平板电脑的屏幕比手机屏幕大得多,因此可以用于组合和交换UI组件的空间更大。利用Fragment实现此类设计时,你无需管理对视图层次结构的复杂更改。通过将Activity布局分成片段,你可以在运行时修改Activity的外观,并在由Activity管理的返回栈中保留这些更改。可能这样说有些抽象,我们结合官方给出的一张图片来说明一下。
常见的手机新闻类应用布局如上图右侧布局,其中第一个Activity用来展示新闻列表,当我们点击列表中的某项时会跳转到下一个Activity从而展示具体的新闻详情。
但是同样的应用在平板上在使用这样的设计就不太好了。因为平板的屏幕太大,这么大只展示一个列表未免太浪费了。所以设计上使用如上图左侧的布局来展示,其结构是Activity中包含了两个Fragment(左右),其中左侧的Fragment用于展示新闻列表,右侧的Fragment用于展示详细新闻内容。当我们点击新闻列表的时候右侧的Fragment会动态的更改内容。
采用了Fragment将屏幕分为不同的片段,合理的利用了整个屏幕,同时大大的提升了用户体验。一举多得啊。
关于Fragment设计思想就撤这么多吧,大家可以发散思维,发觉更多的用法,接下来我们还是看看Fragment到底是怎样使用的吧。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories