Fragment和View的比较

来源:互联网 发布:学完java再学php 编辑:程序博客网 时间:2024/05/17 09:36
Fragment和View都有助于界面组件的复用,这在大型工程里边是特别重要的,但是二者又有所区别。


1、Fragment的复用粒度更大。Fragment有完整的生命周期,从代码设计角度讲可以提高内聚性,不同情况下还可以设计不同的Fragment,比如横屏和竖屏情况下View的显示不一样,那么可以建立2个不同的Fragment去处理,代码上面可以有效的扩展。

从形态上讲和Activity更为接近,当然从编程角度上看也比View更为复杂。但是Fragment可以组装更多的View同一展示,而且生命周期有助于资源的管理。


2、简单的直接view,复杂的才用fragment,fragment资源消耗比较大。


3、一个fragment必须总是绑定到一个activity中,虽然fragment有自己的生命周期,但同时也被它的宿主activity的生命周期直接影响。
大部分情况下,Fragment用来封转UI的模块化组件;但是也可以创建没有UI的Fragment来提供后台行为,该行为会一直持续到Activity重新启动。这特别适合于定期和UI交互的后台任务或者当因配置改变而导致Activity重新启动是,保存状态变得特别重要的场合。

注意:当Activity因为配置发生改变(屏幕旋转)或者内存不足被系统杀死,造成重新创建时,我们的fragment会被保存下来,但是会创建新的FragmentManager,新的FragmentManager会首先会去获取保存下来的fragment队列,重建fragment队列,从而恢复之前的状态。

1 0
原创粉丝点击