Android之Fragment优点

什么是Fragment

 自从Android 3.0中引入Fragmemts概念,根据词海的翻译为:碎片。片段 。其目的是为了解决不同屏幕分辨率的动态和灵活UI设计。大屏幕如平板,小屏幕如手机,平板电脑的设计使得其有更多的空间来放更多的UI组件,而多出来的空间存放UI使其会产生更多的交互,从而产生了fragments.

    fragments的设计不需要你来亲自管理view hierarchy的复杂变化,通过将Activity的布局分散到frament中,可以在运行时修改acitiy的外观,并且由acitivyt管理的back stack中保存变化。当一个片段指定了自身布局时,它能和其他片段配置成不同的组合,再活动中为不同的屏幕尺寸修改布局配置(小屏幕可能每次显示一个片段,而大屏幕则可以显示两个或者多个)

    Fragment 必须被写成可重用的模块。因为fragment有自己的layout 进行事件响应,拥有自己的生命周期和行为,所以你可以在多个activty中包含同一个Fragment的不同实例。这对于让你的界面再不同的屏幕尺寸下都能给用户完美的体验尤为重要。

Fragment 优点

Fragment可以使你能够将acitivity分离成多个重用的组件,每个都有它自己的生命周期和UI.

Fragment可以轻松得创建动态灵活的UI设计,可以适应于不同的屏幕尺寸,从手机到平板电脑。

Fragment是一个独立的模块,紧紧地与activity绑定在一起。可以运行中动态地删除,加入,交换等。

Fragment提供一个新的方式 让你再不同的安卓设备上统一你的UI

Fragment 解决Acitiy间的切换不流畅,轻量切换

Fragment 在4.2版本中新增嵌套Fragment使用方法,能够申城更好的界面效果

Framgent 做布局内容更新更方便,原来为了达到这一点要把多个布局放到一个activity里面,现在可以用Fragment代替,只有再需要的时候才加载Framgent,提高性能。

可以从startActivityForResult中接受到返回结果,但是view不能


Fragment的生命周期

你可以把fragment看做是acivity的模块化组件 它拥有自己的生命周期11个

依次是

onAttach(把Fragment对象跟Activity关联时)

onCreate(Fragment对象初始创建时)

onCreateView(方法用于创建和返回跟Fragment关联的view对象)

onActivityCreate(方法会告诉Fragment对象,他所依附的Activity对象已经完成了Activity.onCreate的执行完成)

onStart(页面可见)

onResume(页面处于活动状态,用户可与之交互)

onPause(页面处于暂停状态,但依然可见 但是不能与用户交互)

onStop(页面不可见,由于依赖的activity被终止或者Acitvity中正在执行一个修改Fragmetn对象的操作,而导致Fragment对象不再显示给用户时,系统会调用Fragmetn对象的onStop方法())

onDestroyView(方法用户清楚跟Fragment中的View对象关联的资源)

onDestory(Fragmetn对象的状态被最终清理完成以后,要调用onDestory方法)

onDetach(在Fragment对象不再跟它依附的Activity关联的时候 此方法立即调用)  

补充其他方法.....................

onSaveInstanceStatue():保存当前Fragemnt 的状态(比如EditText键入的文本)即使被销毁重建 一样能恢复之前的文本

setUserVisibleHint():设置Fragment可见或者不可见时会调用此方法,在方法里面可以通过调用getUserVisbleHint()获得

Fragment生命周期执行流程

创建:setUserVisibleHint()->onAttach()->onCreate()->onCreateView()->onActivityCreated()->onStart()->onResume();

退出应用:onPause()->onStop()->onDestroyView()-onDestroy()->onDetach() (人为退出 不会保存数据 不走onSaveInstanceStatus方法)







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安果移不动

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值