自从Android在3.0推出Fragment之后,现在很多应用的设计都是建立在Fragment的基础上,像是多个tab切换这种需求,就可以使用Fragment,并且Fragment提供了一系列生命周期的回调,可以帮助我们实现很多特殊的需求,像是数据保存和恢复等。

    Fragment本身的出现是为了解决平板多屏界面展示问题,因为平板可以展示比手机更多的内容,所以使用Fragment可以实现根据不同尺寸展示不同内容的需求,而这不同内容更多是指在更大的尺寸显示更多的内容。

    随着人们的实际编码工作,发现使用Fragment可以更好的管理界面,因为一个Activity可以管理多个Fragment,如果将Fragment当做一个界面,我们可以实现多个界面的切换,并且这种工作比起以前在布局文件中控制可见来讲,更好管理,并且布局可以复用,导致Activity的作用就只是Fragment的管理容器而已,加上Fragment拥有和Activity同步的生命周期,所以很多业务工作都可以放在Fragment中。

    现在很多界面的开发工作都是使用Activity加多个Fragment的设计模式,这是很好的方式,但要想完全掌握Fragment这个利器,需要了解的工作非常多,并且有关Fragment可以开展相当多的话题,像是Fragment之间的参数传递,Fragment之间的切换和状态的保存,等等,这些都是相当大的范围,而且谷歌也看到Fragment的使用前景,封装了DialogFrament,ListFragment等方便开发者使用,Fragment和Activity之间生命周期的关系,还可以做监听Activity生命周期实现某些功能,像是结束的时候停止当前异步任务等需求。

    仔细看Fragment的代码,我们发现这无非就是在Activity的布局中指定的地方添加相应的布局,然后绑定一堆监听用以实现各种生命周期的回调。

    我们甚至可以模拟Android源码,自己搞一个Fragment的替代品。

    我们这次的尝试是实现Fragment界面复用的功能,这是最常用的场景。

网友评论