说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Fragment对比Activity - Android碎片介绍

HTML文档下载 WORD文档下载 PDF文档下载
Fragment对比Activity - Android碎片介绍

作者:Android开发网


  Fragment是Android honeycomb 3.0新增的概念,Fragment名为碎片不过却和Activity十分相似,下面Android123介绍下Android Fragment的作用和用法。Fragment用来描述一些行为或一部分用户界面在一个Activity中,你可以合并多个fragment在一个单独的activity中建立多个UI面板,同时重用fragment在多个activity中.你可以认为fragment作为一个activity中的一节模块 ,fragment有自己的生命周期,接收自己的输入事件,你可以添加或移除从运行中的activity.

  一个fragment必须总是嵌入在一个activity中,同时fragment的生命周期受activity而影响,举个例子吧,当activity暂停,那么所有在这个activity的fragments将被destroy释放。然而当一个activity在运行比如resume时,你可以单独的操控每个fragment,比如添加或删除。

   Fragment作为Android 3.0的新特性,有些功能还是比较强大的,比如 合并两个Activity,如图

fragment android

  我们可以看到两个Activity通过两个Fragment合并到一个Activity的布局方式,对于平板等大屏幕设备来说有着不错的展示面板。不过因为Fragment和Activity的生命周期都比较复杂,我们分别对比下:

  fragment生命周期

   创建一个fragment你必须创建一个Fragment的子类或存在的子类,比如类似下面的代码

public static class Android123Fragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) { 
               return inflater.inflate(R.layout.android123_fragment, container, false);
    }
}

Fragment类的一些代码看起来有些像Activity为了让大家了解清楚,Android开发网给大家整理下Fragment的生命周期如上图所示,部分类似Activity的,我们详细解释

onCreate()
  当fragment创建时被调用,你应该初始化一些实用的组件,比如在fragment暂停或停止时需要恢复的

onCreateView()
   当系统调用fragment在首次绘制用户界面时,如果画一个UI在你的fragment你必须返回一个View当然了你可以返回null代表这个fragment没有UI.

 那么如何添加一个Fragment到Activity中呢? Activity的布局可以这样写

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <fragment android:name="com.android123.cwj.ArticleListFragment"
            android:id="@+id/list"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_height="match_parent" />
    <fragment android:name="com.android123.cwj.ArticleReaderFragment"
            android:id="@+id/viewer"
            android:layout_weight="2"
            android:layout_width="0dp"
            android:layout_height="match_parent" />
</LinearLayout>

  当然有关Android Fragment的内容由于篇幅的原因,Android123将在明天继续帮大家分析下,最后提醒大家Fragment存在于Activity的ViewGroup中,按照继承关系大家就可以了解他的结构,由于Android 3.0的代码还没有开源,所以测试只能从Android honeycomb版本的模拟器上进行了。

AMD迎接变革:加速OpenCL的未来 角逐Hadoop市场,Cloudera与Hortonworks竞争白热化 OpenStack将提供对Docker的支持 Facebook Q1财报:营收25.02亿美元、59%来自于移动 黑客们盯上了卫星,IOActive的惊人发现 在C#(ASP.NET)中如何实现远程调试? How to make a ListView control display an item for a line? word中的绘图栏的插入剪贴画不能用 我的数据库连接是写在一个类里面的!如何让异常在WEB页上显示? 怎么将Edit1中的内容转为整型(新手上路!) 请问sql语句文件打开路径名的格式应该是怎么样 简单的SQL查询语句,帮我看一下,谢谢 如和用动态变量表示控件名,如有控件checkbox1,checkbox2,checkbox3...(马上结帖) 公司的网页布局应该是什么样子的? 1.四川大地震发生后,某项企业向灾区捐助价值94万 七年级数学(一元一次方程)小明的妈妈暑假准备带领小 关于盈利问题的一元一次方程,某商店有两种不同的mp 请用一元一次方程解出来!某商店开张为吸引顾客,所有 数学问题(一元一次方程)玉树大地震后,各地人民纷纷 一元一次方程, 初中一元一次方程中的钟表问题怎么解? 在3时和4时间的哪个时刻,钟表的时针与分针重合(用 列一元一次方程解一道时钟应用题时针从三点整到三点四 日媒:安倍上任后已打13次高尔夫 展穆尔西出庭高喊“我是总统”东京股市日经股指微涨俄罗斯惊现一专杀老年女性杀人狂 两年男友不肯吃麦当劳 女友开车将其辗过3加拿大蒙特利尔春节庙会热闹登场 打造吉林GDP增长6.9% 展现东北经济融创150亿入股乐视 孙宏斌:房地产重庆全方位开放式创新促新兴产业发展重庆一年来有啥新变化?听听代表委员怎通天卦大反派也有春天我和女神合租的日子书眼带着游戏玩电影龙门黄河大桥旅游法幢寺旅游傅家边科技园旅游省庄竹海旅游东极石屋群旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘