小猪的Android入门之路 Day 5 - part 2

来源:互联网 发布:c语言中的void 编辑:程序博客网 时间:2024/06/08 23:34

Activity片段:Fragment(碎片)

                                 ------转载请注明出处:coder-pig


本节引言:

在part 1中我们对android的基本单元Activity进行了详细的解析,而在part 2中我们将会讲解

Activity片段:Fragment(碎片),一开始是为了简化大屏幕手机或者平板电脑的UI设计,但是现在也普遍用于

普通手机,比如Fragment + slideMenu实现侧滑效果,在网上有很多相关的例子,掌握了Fragment的基本用法

可以更加容易地去理解使用Fragment实现的一些效果的代码!

好了,直接开始本节内容吧!发火



本节学习路线图:




正文:


Fragment的概述与生命周期图:






创建Fragment的流程

①静态加载Fragment:


代码示例:

将Activity划分为两个Fragment

效果图如下:



比较简单,代码就不一一列出了,有需要的自己下载吧:参考代码下载

ps:Fragment的子类有:

对话框:DialogFragment      列表:ListFragment     

选项设置:PreferenceFragment       WebView界面:WebViewFragment


②动态加载Fragment



代码示例:切换横竖时替换Fragment



就是当我们切换横竖屏时加载不同的fragment,我们把动态加载fragment的方法写在Activity的onCreate()方法中

当我们切换横竖屏时,Activity就会被销毁,然后从新加载!

代码也很简单,要的自己下载吧:代码下载




Fragment与Activity的交互






Fragment管理与Fragment事务



代码示例:点击左边的列表项,右面显示出相应的详细信息:

效果图如下:

竖屏时:



横屏时:



这个代码对于新手来说有点难理解:不过已经算是比较简单的例子了,对比起侧滑来说:

要自己琢磨琢磨!参考代码下载: 代码下载

注意:

在ListFragment.java用到一个savedInstanceState的属性,以及重写了

onSaveInstanceState()方法;当一个Activity结束前,如果需要保存状态,

我么可以在onsaveInstanceState中,将状态数据以key-value的形式放入

到savedInstanceState中。这样,当一个Activity被创建时,

就能从onCreate的参数savedInsanceState中获得状态数据。

代码中创建了一个layout_land的文件夹,相信很多朋友都在找这个布局什么时候加载的

但是找来找去还是找不到是吧!其实这个是默认加载的;如果我们的app想要支持横屏,会取

同名的layout_land文件夹下;同样竖屏的话layout_port,layout的话就是默认了!

③如果觉得上述的例子难以理解或者枯燥无味,可以看下大牛郭大叔的一个很好的例子:

使用Fragment实现Tabhost的效果:传送门


                                                                   ---谢谢某读者的热心提醒!大笑





ps:Fragment的基础部分暂时就讲这么多,Fragment是android UI开发中很重要的一环,

以后会结合着实例进行讲解!后续还会有深入讲的课程!谢谢\(^o^)/

0 0
原创粉丝点击