Android_Activity片段:Fragment(碎片)

本节引言:

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

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

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

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

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



本节学习路线图:

Android_Activity片段:Fragment(碎片)_第1张图片



正文:


Fragment的概述与生命周期图:


Android_Activity片段:Fragment(碎片)_第2张图片




创建Fragment的流程

①静态加载Fragment:

Android_Activity片段:Fragment(碎片)_第3张图片

代码示例:

将Activity划分为两个Fragment

效果图如下:

Android_Activity片段:Fragment(碎片)_第4张图片


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

ps:Fragment的子类有:

对话框:DialogFragment      列表:ListFragment     

选项设置:PreferenceFragment       WebView界面:WebViewFragment


个人看完博客后补充:

注意: 每一个fragment都需要一个唯一的标识, 如果activity重启,系统可以用来恢复fragment(并且你也可以用来捕获fragment来处理事务,例如移除它.) 

有3种方法来为一个fragment提供一个标识:
  • 为 android:id 属性提供一个唯一ID.
  • 为 android:tag 属性提供一个唯一字符串.
  • 如果以上2个你都没有提供, 系统使用容器view的ID.


②动态加载Fragment

Android_Activity片段:Fragment(碎片)_第5张图片


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

Android_Activity片段:Fragment(碎片)_第6张图片


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

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

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




Fragment与Activity的交互


Android_Activity片段:Fragment(碎片)_第7张图片




Fragment管理与Fragment事务

Android_Activity片段:Fragment(碎片)_第8张图片


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

效果图如下:

竖屏时:

Android_Activity片段:Fragment(碎片)_第9张图片


横屏时:

Android_Activity片段:Fragment(碎片)_第10张图片


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

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

注意:

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

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

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

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

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

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

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

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

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

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

你可能感兴趣的:(Android_Activity片段:Fragment(碎片))