【Android基础】Fragment 详解之Fragment介绍

Fragment在Android 3.0( API 11)引入,是为了支持在大屏上显示更加动态、灵活的UI,比如在平板和电视上。Fragment可以看作是嵌套的Activity,类似ActivityGroup,但是开销肯定没有ActivityGroup那么大,每一个Fragment管理着一个View,Fragment彼此之间相互独立,有自己的生命周期,这个生命周期是在Activity生命周期中的。Fragment可以用来解决屏幕适配和动态创建View的问题。

一个Fragment总是嵌入到一个Activity,是一个模块化的View,它的生命周期受它所嵌入的Activity生命周期的的影响。比如Activity进入paused状态,那么多有附在这个Activity的Fragment都会进入paused状态,当Activity被销毁时,所有附在这个Activity的Fragment也都会销毁。然后当Activty进入运行状态onResume后,你可以独立的管理每一个Fragment,可以add一个Fragment,也可以remove一个Fragment。在你执行一个Fragment事务的时候(创建并且显示出来),你可以把这个Fragment放到Fragment回退栈中,这个回退栈记录了所有你执行过的Fragment事务,用户在点击返回键的时候可以从Fragment栈中取一个Fragment来显示。

Fragment的生命周期:

如果你很清楚Activity的生命周期那么Fragment的生命周期就很容易理解,在Fragment中有很多类似Activity生命周期函数的回调方法,这些方法由Android系统调用。官方的Fragment生命周期图如下:

  • onCreat(): 系统调用这个函数来创建Fragment,这个方法中用来创建整个Fragment周期中都会用到的资源,比如在paused、stoped,或者resumed方法中用到的资源。
  • onCreateView(): 当Fragment需要第一次绘制用户界面的时候系统调用这个函数完成UI的绘制,你必须在这个函数返回一个View,这个View是Fragment的根View,如果你不想Fragment显示View就返回null。
  • onPause(): 当离开Fragment时系统会首先调用这个函数,在这个函数中你需要保存用户的状态类似在Activity的onPause方法中做的工作。

一般来说应用程序至少需要重写这三个函数,来完成你的应用程序逻辑。

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-08-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏分享达人秀

Activity中启动和关闭其他Activity

上一期我们学习了Activity的创建和配置,当时留了一个悬念,如何才能在默认启动的Activity中打开其他新建的Activity呢?那么本期一起来学...

3035
来自专栏Android干货园

Base封装(一)--我的最简MVP架构

版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/lyhhj/article/details/73...

1111
来自专栏听雨堂

Android新手之旅(13) listview中数据重复的问题

非常奇怪,从第十条起,重复第一条。到20条时,再重复第一条。一直跟踪,发现数据都没有问题。这篇文章提到了问题的关键: http://laolang.xtmm.c...

1986
来自专栏非著名程序员

浅谈Andorid开发中的MVP模式

? 导语:最近公众号后台经常收到一些消息,说能不能讲一些开发模式,经过思考后,我决定讲一讲MVP模式。希望对大家能够有所帮助。并写了一个简单的小demo。 ...

2006
来自专栏CodingBlock

Android开发必知--自定义Toast提示

  开发过Android的童鞋都会遇到一个问题,就是在打印Toast提示时,如果短时间内触发多个提示,就会造成Toast不停的重复出现,直到被触发的Toast全...

2245
来自专栏我的博客

安卓开发之Activity传递参数

1、知识点:启动activity、注册activity、button绑定监听事件、传递参数、获取参数 2、传递参数以及绑定监听代码(注意如果绑定监听出现错误:需...

1794
来自专栏懒人开发

BottomNavigationView简单使用

之前见过类似这个库, 是带ripple效果的 不记得具体地址了,和这个类似 https://github.com/Ashok-Varma/BottomNav...

693
来自专栏everhad

札记:Fragment基础

Fragment概述 在Fragment出现之前,Activity是app中界面的基本组成单位,值得一提的是,作为四大组件之一,它是需要“注册”的。组件的特性使...

1916
来自专栏Android干货

安卓开发_计时器(Chronometer)的简单使用

31011
来自专栏技术小黑屋

程序实现自己管理数据清理工作

How to disable system clear button and replace it with self application Manage S...

851

扫码关注云+社区