安卓APP开发入门之Fragment碎片
沉沙 2018-12-21 来源 : 阅读 1792 评论 0

摘要:本篇教程探讨了安卓APP开发入门之Fragment碎片,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。

本篇教程探讨了安卓APP开发入门之Fragment碎片,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。

安卓APP开发入门之Fragment碎片

<

什么是碎片?
  碎片(Fragment)是一种可以嵌入在活动当中的UI片段,它能让程序更加合理和充分地利用大屏幕的空间,因而在平板上应用的非常广泛。可以把Fragment当成Activity一个界面的一部分,那么 Activity的界面就由完全不同的Fragment组成,且Fragment有自己的声明周期和接收、处理用户的事件,支持动态的添加、替换、移除某个Fragment。
为什么使用碎片?
  我们知道,Android上的界面展示都是通过Activity实现的,但Activity也有它的局限性,同样的界面在手机上显示可能很好看,在平板上就未必了,因为平板的屏幕非常大,手机的界面放在平板上可能会有过分被拉长、控件间距过大等情况。这个时候更好的体验效果是在Activity中嵌入"小Activity",然后每个"小Activity"又可以拥有自己的布局。这就用到了Fragment。
比如我们想做一个新闻应用,其中一个界面使用ListView展示了一组新闻的标题,当点击了其中一个标题,就打开另一个界面显示新闻的详细内容。如果是在手机竖屏时,我们可以将新闻标题列表放在一个Activity中,将新闻的详细内容放在另一个Activity中,如下图所示。
 
 
但是在平板设计中,横屏时的显示就是下面这种情况,列表会被拉长
 
 
因此,更好的设计方案是将新闻标题列表界面和新闻详细内容界面分别放在两个Fragment中,然后在同一个Activity中引入这两个Fragment,如下图所示。
 
 
Fragment的特点:
(1)Fragment依赖于Activity,不能独立存在。
(2)一个Activity里可以有多个Fragment。
(3)一个Fragment可以被多个Activity重用。
(4)Fragment有自己的生命周期,并能接收输入事件。
(5)可以在Activity运行时动态地添加或删除Fragment。
Fragment优点:
(1)模块化(Modularity):不必把所有代码全部写在Activity中,而是把代码写在各自的Fragment中。
(2)可重用(Reusability):多个Activity可以重用一个Fragment。
(3)可适配(Adaptability):根据硬件的屏幕尺寸、屏幕方向,能够方便地实现不同的布局,获得更好的用户体验。
Fragment生命周期:
Fragment 的生命周期如图所示,关于每个方法的解释如下:
 
 
OnAttach():Fragment和Activity相关联时调用。可以通过该方法获取Activity引用,还可以通过getArguments()获取参数。
OnCreate():Fragment被创建时调用。
OnCreateView():创建Fragment的布局。
OnActivityCreated():当Activity完成onCreate()时调用。
OnStart():当Fragment可见时调用。
OnResume():当Fragment可见且可交互时调用。
OnPause():当Fragment不可交互但可见时调用。
OnStop():当Fragment不可见时调用。
OnDestroyView():当Fragment的UI从视图结构中移除时调用。
OnDestroy():销毁Fragment时调用。
OnDetach():当Fragment和Activity解除关联时调用。
上面的方法中,只有OnCreateView()在重写时不用写super方法,其他都需要。
Fragment使用方法:
在Activity中添加Fragment的方式有两种:
(1)静态添加:通过xml的方式添加,即在布局页面中直接添加,缺点是一旦添加就不能在运行时删除。
(2)动态添加:在Activity中添加,运行时添加,这种方式比较灵活,建议使用这种方式。
   

本文由职坐标整理发布,学习更多的相关知识,请关注职坐标IT知识库!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved