fragment概念理解知识,fragment概念理解图片 fragment概念理解内容,fragment概念理介绍,fragment概念理正文

Fragment是Android honeycomb 3.0新增的概念,你可以将Fragment类比为Activity的一部分,它拥有自己的生命周期,接收自己的输入,你可以在Activity运行的时加入或者移除Fragment.(或者我们也可以将Fragment类比为一个可以在不同的Activity中重用的子Activity。

Fragment总是嵌入在Activity中,同时Fragment的生命周期受Activity影响,当Activity 暂停,所有在这个Activity中的Fragments将被释放。然而当一个Activity在运行比如resume时,你可以单独的操控每个Fragment。

某种意义上Fragment是屏幕中的一个子activity,但是在一个屏幕显示多个activity会造成概念和逻辑的混乱,所以引入fragment的概念,可以理解为屏幕中的一块UI,可作为activity的一部分。Fragment是view的容器,加载layout,处理一小部分屏幕,它是activity的一部分。Fragment提供的UI和代码的重用,例如,在大屏幕设备中,显示左右两个fragment或者上下两个fragment(具体看编程培训orientation),在小屏幕设备中则显示其中一个fragment

fragments 的设计不需要你来亲自管理view hierarchy 的复杂变化,通过将Activity 的布局分散到frament 中,可以在运行时修改activity 的外观,并且由activity 管理的back stack 中保存些变化。当一个片段指定了自身的布局时,它能和其他片段配置成不同的组合,在活动中为不同的屏幕尺寸修改布局配置(小屏幕可能每次显示一个片段,而大屏幕则可以显示两个或更多)。

Fragment必须被写成可重用的模块。因为fragment有自己的layout,自己进行事件响应,拥有自己的生命周期和行为,所以你可以在多个activity中包含同一个Fragment的不同实例。这对于让你的界面在不同的屏幕尺寸下都能给用户完美的体验尤其重要。

Fragment英文原意是碎片,片段的意思,为了应对android的碎片化,Fragmnet的概念在Android3.0中被引入进来,主要目的是用在大屏幕设备上--例如平板电脑上,支持更加动态和灵活的UI设计。平板电脑的屏幕比手机大得多,有更多的空间来放更多的UI组件,并且这些组件之间会产生更多的交互。

Fragment在应用中应当是一个模块化和可重用的组件,因为Fragment定义了自己的布局,以及通过使用它自己的生命周期回调方法定义了它自己的行为,你可以将Fragment包含到多个Activity中,一个Activiy也可以包含多个Fragment。

Activity与Fragment之间的关系:

activity与fragment关联有俩种方法:

1.在activity布局文件中定义(简单但不够灵活,activity生命周期过程中无法切换fragment视图)

2.在activity代码中添加

我们来说说第二种方法:

在activity代码中添加fragment就要用到Fragment Manager。FragmentManager负责管理fragment并将他们的视图添加到activity的视图层级结构中。

添加fragment给FragmentManager 管理时, onAttach(Activity). oncreate(Bundl_e)以及 oncreateview(…) 方法会被调用。

托管acti vity的oncreate(…)方法执行后,onActivitycreated(…)方法也会被调用。

activity处于运行状态时,FragmentManager立即驱动fragment行动,执行必要方法,跟上activity的状态(与activity的最新状态同步。)

fragment的两种切换方式:

1.通过add方法添加fragment,再通过hide,show决定显示哪一个fragment,此方式是将fragment隐藏而非重建

2.replace:每次都是重新创建fragment

fragment概念理解的更多相关文章

  1. 大数据核心知识点:Hbase、Spark、Hive、MapReduce概念理解,特点及机制

    今天,上海尚学堂大数据培训班毕业的一位学生去参加易普软件公司面试,应聘的职位是大数据开发.面试官问了他10个问题,主要集中在Hbase.Spark.Hive和MapReduce上,基础概念.特点.应用 ...

  2. SpringIOC的概念理解、构造器注入、setter注入、p命名空间注入、IOC容器介绍与比较

    1.IOC概念理解 IOC(Inversion of Control)即“控制反转”,不是什么技术,而是一种设计思想.在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象 ...

  3. Kubernetes重要概念理解

    Kubernetes重要概念理解 kubernetes是目前最主流的容器编排工具,是下一代分布式架构的王者.2018年的kubernetes第一个版本1.10已经发布.下面整理一下,kubernete ...

  4. SNF快速开发平台2019-角色、权限、账户的概念理解-非常全的理论讲解权限控制

    组织模型   资源模型  操作模型 谁能够执行哪些操作    执行资源的范围 资源概念资源就是想要的到的最终物质,我们可以给每一个资源定义一个权限,也可以给某一类资源定义一个权限 权限概念权限是对资源 ...

  5. elasticsearch基本概念理解+elasticsearch 的shards unassigned处理方法 -- 最佳运维实践 - 集群规划

    1.es与MySQL的概念对比 2.概念理解 2.1 Index : 一个索引即是文档的集合 2.2 Document : 一个文档即是一个可被索引的基础单元信息,一条记录: 2.3 Replicas ...

  6. ubuntn系统下将文件拷贝到优盘中及挂载概念理解

    参考资料:http://jingyan.baidu.com/article/7082dc1c76f178e40a89bdd3.html: http://bbs.csdn.net/topics/3801 ...

  7. Ceph 概念理解

    简介 Ceph是一个可靠地.自动重均衡.自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储.块设备存储和文件系统服务. 在虚拟化领域里,比较常用到的是Ceph的块设备存储, ...

  8. JavaScript的作用域和块级作用域概念理解

    作用域 作用域永远都是任何一门编程语言中的重中之重,因为它控制着变量与参数的可见性与生命周期.说到这里我们需要理解两个概念:块级作用域与函数作用域. 函数作用域 这个应该好理解,函数作用域就是说定义在 ...

  9. OpenStack中Keystone的基本概念理解

    原文http://www.kankanews.com/ICkengine/archives/10788.shtml Keystone简介 Keystone(OpenStack Identity Ser ...

随机推荐

  1. ubuntu 安装百度云客户端

    下载地址:http://pan.baidu.com/download 如果没有安装alien,安装 luo@luo-ThinkPad-W540:~$sudo apt-get install alien ...

  2. iOS-同步下载与异步下载

    一.同步下载(交互不好,容易出现卡死现象,一般下载数据较小或有特定需求才使用). 发送同步请求后,程序将停止用户交互,直到服务器返回数据完成后,才进行下一步的操作. //第一步:创建URL NSURL ...

  3. 攻防世界WEB新手练习

    0x01 view_source 0x02 get_post 这道题就是最基础的get和post请求的发送 flag:cyberpeace{b1e763710ff23f2acf16c2358d3132 ...

  4. 找到数组中频次大于1/k的数

    Majority Number III 给定一个数组(长度为L),找到所有出现频次大于1/k的数字. 我们主要使用摩尔投票法(Voting Algorithm)结合Map的数据结构解决此问题.其时间复 ...

  5. Ubuntu 18.04 更换阿里源

    1.备份 sudo cp /etc/apt/source.list /etc/apa/source.list.bak 2.编辑 sudo vim /etc/apt/source.list 3.修改内容 ...

  6. Mysql 索引失效场景

    例如:一张USER表   有字段属性 name,age   其中name为索引 下面列举几个索引失效的情况 1. select * from USER where name=‘xzz’ or age= ...

  7. [Cometoj#4 E]公共子序列_贪心_树状数组_动态规划

    公共子序列 题目链接:https://cometoj.com/contest/39/problem/E?problem_id=1585 数据范围:略. 题解: 首先可以考虑知道了$1$的个数和$3$的 ...

  8. java23种设计模式之七: 观察者模式

    一.应用背景     观察者模式又称为发布/订阅(Publish/Subscribe)模式,我们可以理解为:只有关注信公众号关注后才能收到信息 二.优.缺点 优点: 1.可以动态的改变对象的行为 缺点 ...

  9. 关于keepalived执行后日志狂刷IPVS: Can't initialize ipvs: Protocol not available的问题

    安装了keepalived+lvs,达到了高可用的负载均衡,但是今天再启用的时候发现keepalived不正常,通过 /var/log/messages 查看系统日志发现狂刷 IPVS: Can't ...

  10. 自定义的C4P数据库连接池

    要想自己写一个数据库连接池 需要实现DataSoure这个类,然后重写getConnection 这个方法 public class C4p0 implements DataSource{ priva ...