`
MyEyeOfJava
  • 浏览: 1152256 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7af2d6ca-4fe1-3e9a-be85-3f65f7120bd0
测试开发
浏览量:71173
533896eb-dd7b-3cde-b4d3-cc1ce02c1c14
晨记
浏览量:0
社区版块
存档分类
最新评论

[Android]Fragment、Activity比较——Android碎片介绍

阅读更多

Fragment是Android honeycomb 3.0新增的概念,Fragment名为碎片不过却和Activity十分相似,下面介绍下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、Activity比较——Android碎片介绍 - 乂乂 - 一个人,一支烟  ·~~ 

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

Fragment、Activity比较——Android碎片介绍 - 乂乂 - 一个人,一支烟  ·~~

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

public static class AndroidFragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) { 
               return inflater.inflate(R.layout.android_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.android.cwj.ArticleListFragment"
            android:id="@+id/list"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_height="match_parent" />
    <fragment android:name="com.android.cwj.ArticleReaderFragment"
            android:id="@+id/viewer"
            android:layout_weight="2"
            android:layout_width="0dp"
            android:layout_height="match_parent" />
</LinearLayout>

最后提醒大家Fragment存在于Activity的ViewGroup中,按照继承关系大家就可以了解他的结构。

分享到:
评论

相关推荐

    Android中文翻译组——Android中文合集(6)

    【Android中文翻译组——Android中文合集(6)】 这个合集主要涵盖了Android开发中的多个重要知识点,由Android中文翻译组精心编译和翻译,旨在为国内开发者提供更易理解和使用的中文资源。以下是对其中一些关键...

    AndroidStudio————实战演练——仿美团外卖菜单

    在本项目中,"AndroidStudio————实战演练——仿美团外卖菜单"是一个专注于使用Android Studio开发的应用程序实战案例,目标是创建一个类似于美团外卖的菜单功能。这个项目涵盖了多个Android开发的关键知识点,...

    Android学习笔记(十六)——碎片之间进行交互(附源码)

    在Android应用开发中,碎片(Fragment)是一种可重用的UI组件,它可以嵌入到活动(Activity)中,使得在不同屏幕尺寸和配置下能够更好地展示内容。碎片间的交互是Android应用设计中不可或缺的一部分,特别是在构建...

    安卓碎片Fragment的几个简单demo

    当你执行这样一项事务时,可以将它添加到后台的一个栈中,这个栈由activity管理着——activity里面的每个后台栈内容实体是fragment发生过的一条事务记录。这个后台栈允许用户通过按BACK键回退一项fragment事务(往后...

    Android中文翻译组——Android中文API合集(3).zip_android_手册

    8. **碎片(Fragment)**:Fragment是用于支持多屏幕适配的组件,可以在Activity中嵌入,方便在不同尺寸的屏幕上展示复杂布局。 9. **通知(Notification)**:Notification是向用户显示非侵入性消息的机制,即使...

    Android学习笔记(十四)——在运行时添加碎片

    碎片是Android 3.0(API级别11)引入的一种组件,它可以独立于Activity存在,有自己的生命周期和UI。它们可以在多个屏幕、多面板布局,甚至平板电脑和手机之间共享。碎片的主要目的是提高代码的可复用性和应用程序的...

    安卓Android源码——基于Fragment实现Tab的切换,滑出侧边栏.zip

    本项目“安卓Android源码——基于Fragment实现Tab的切换,滑出侧边栏.zip”显然是一个示例,演示了如何使用Fragment来创建一个多标签导航界面,并结合侧滑菜单实现更丰富的用户交互。 1. **Fragment基础**: - ...

    Android菜鸟成长笔记(十三)——碎片(一)

    在Android应用开发中,"碎片"(Fragment)是Android 3.0(API级别11)引入的一个重要组件,用于创建动态和可重用的UI片段。本篇笔记将深入探讨碎片的概念、用途以及如何在实际项目中使用碎片。通过学习这篇笔记,你...

    Android学习笔记(十五)——碎片的生命周期

    在Android应用开发中,"碎片"(Fragment)是Android 3.0版本引入的一个重要组件,它是Activity的一个模块化部分,可以独立存在并被插入到Activity的不同布局位置。本篇学习笔记将深入探讨碎片的生命周期,这对于理解...

    Android应用案例开发大全——源码.rar

    "Android应用案例开发大全——源码.rar"提供了一套宝贵的实践项目,适合开发者深入理解Android应用的构建过程。这个压缩包包含了书后12个案例的完整源码,为初学者和有经验的开发者提供了丰富的学习材料。 首先,...

    Android开发——从小工到专家(书签)

    八、碎片(Fragment) Fragment是用于构建可重用的UI模块,尤其在多屏幕适配中发挥重要作用。理解Fragment的生命周期,以及如何在Activity中添加和管理Fragment,对于开发支持平板和手机的应用至关重要。 九、数据...

    Android项目之——页面特效集合(附源码)(实用1).zip

    在本资源中,"Android项目之——页面特效集合(附源码)(实用1).zip",我们聚焦于Android应用程序开发中的页面特效实现。这个压缩包包含了一系列实用且有趣的源码,非常适合用作毕业设计或课程设计的参考,旨在帮助...

    Android源码——Txt文本阅读器源码.zip

    这个Activity可能会继承自Android的`AppCompatActivity`或`FragmentActivity`,并包含一个TextView或自定义的布局来展示文本。TextView是Android系统中内置的用于显示文本的控件,它可以处理各种文本格式和样式。 ...

    android-support-v4-25.3.1

    Android Support Library v4的25.3.1版本,作为一个重要的更新,不仅加强了权限请求的处理,还改进了FragmentActivity和ViewPager的功能,使得开发者能够更高效、更稳定地开发面向广泛Android设备的应用。...

    Android源码——仿开心网源代码.zip

    在本项目中,"Android源码——仿开心网源代码.zip" 提供了一个学习和研究Android应用程序开发的机会,特别是对于那些对社交网络应用设计感兴趣的人来说。这个压缩包包含了一个模仿开心网(Kaixin001)功能的Android...

    Android源码——驴友社交系统源码.zip

    源码中的"Android 驴友社交系统源码"可能包含了许多Activity(活动)、Fragment(碎片)、Adapter(适配器)等核心组件,它们是构建用户界面的主要元素。例如,Activity是用户与应用交互的窗口,而Fragment可以用来...

    安卓Android源码——高仿网易客户端UI(tabhost).zip

    3. **Fragment**: 在Android中,Fragment表示UI的一部分,可以在Activity之间共享,这对于实现TabHost中的各个页面切换非常有用。 4. **Adapter模式**: 为了将数据与UI组件绑定,通常会使用Adapter,如BaseAdapter...

    安卓Android源码——ViewPagerDemo1.rar

    4. **页面碎片**(如`Fragment1.java`, `Fragment2.java`):如果使用了Fragment,每个页面可能对应一个Fragment类,包含页面的具体内容。 5. **资源文件**(如`drawable`, `values`等):可能包含图片、颜色、字符...

    android碎片Demo

    本Demo——"android碎片Demo",旨在全面展示`Fragment`的使用方法,包括静态和动态的添加、数据交互以及生命周期管理。 首先,我们来探讨`Fragment`的静态使用。在布局XML文件中,可以通过`&lt;fragment&gt;`标签直接声明...

    Android源码——仿Win8的metro的UI界面源码.zip

    6. **碎片(Fragment)和活动(Activity)**: - 在Android应用中,可以使用`Fragment`来实现类似Windows 8应用中的“动态磁贴”行为,每个`Fragment`代表一个独立的功能模块。 - 通过`FragmentManager`管理`...

Global site tag (gtag.js) - Google Analytics