android Fragments详解一:概述

Fragmentactivity的界面中的一部分或一种行为。你可以把多个Fragment们组合到一个activity中来创建一个多面界面并且你可以在多个activity中重用一个Fragment。你可以把Fragment认为模块化的一段activity,它具有自己的生命周期,接收它自己的事件,并可以在activity运行时被添加或删除。

Fragment不能独立存在,它必须嵌入到activity中,而且Fragment的生命周期直接受所在的activity的影响。例如:当activity暂停时,它拥有的所有的Fragment们都暂停了,当activity销毁时,它拥有的所有Fragment们都被销毁。然而,当activity运行时(在onResume()之后,onPause()之前),你可以单独地操作每个Fragment,比如添加或删除它们。当你在执行上述针对Fragment的事务时,你可以将事务添加到一个棧中,这个栈被activity管理,栈中的每一条都是一个Fragment的一次事务。有了这个栈,就可以反向执行Fragment的事务,这样就可以在Fragment级支持“返回”键(向后导航)。

当向activity中添加一个Fragment时,它须置于ViewGroup控件中,并且需定义Fragment自己的界面。你可以在layoutxml文件中声明Fragment,元素为:<fragment>;也可以在代码中创建Fragment,然后把它加入到ViewGroup控件中。然而,Fragment不一定非要放在activity的界面中,它可以隐藏在后台为actvitiy工作。

本章描述如何使用fragment,包括fragment在加入activity的后退棧中时如何保持自己的状态,如何与activity以及其它fragment们共享事件,如何显示在activity的动作栏,等等。

设计哲学

Android3.0开始引入fragment,主要是为了支持更动态更灵活的界面设计,比如在平板上的应用。平板机上拥有比手机更大的屏幕空间来组合和交互界面组件们。Fragment使你在做那样的设计时,不需应付view树中复杂的变化。通过把activitylayout分成fragment,你可以在activity运行时改变它的样子,并且可以在activity的后退栈中保存这些改变。

例如:写一个读新闻的程序,可以用一个fragment显示标题列表,另一个fragment显示选中标题的内容,这两个fragment都在一个activity上,并排显示。那么这两个fragment都有自己的生命周期并响应自己感兴趣的事件。于是,不需再像手机上那样用一个activity显示标题列表,用另一个activity显示新闻内容;现在可以把两者放在一个activity上同时显示出来。如下图:


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

举个例子--还是刚才那个读新闻的程序-当你检测到程序运行于大屏幕时,启动activityA,你将标题列表和新闻内容这两个fragment都放在activityA中;当检测到程序运行于小屏幕时,还是启动activityA,但此时A中只有标题列表fragment,当选中一个标题时,activityA启动activityBB中含有新闻内容fragment


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/548666.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hcip第12天笔记

8&#xff0c;路由反射器 Router Reflector --- 路由反射器 --- RR ---- 我们可以通过配置&#xff0c;将某些设备在一定的条件下设置称为路由反射器&#xff0c;之后&#xff0c;该设备将可以反射所学习到的IBGP路由信息。 我们在指定一台路由器称为路由反射器&#xff08;RR&…

BGP联邦实验

一&#xff0c;首先根据要求进行子网划分 172.16.0.0/16 172.16.0.0/24 ---P2P网络 172.16.1.0/24 ---MA网络 172.16.1.0/29 172.16.1.8/29 172.16.1.16/29 172.16.1.24/29 172.16.1.32/29 …

停止坐井观天,是时候让“我个人认为”见鬼去了!

不知道从什么时候开始&#xff0c;在互联网BBS上、在和同学交流一些涉及到强烈个人立场或看法时&#xff0c;我都习惯性的在每句话的前面或后面加上一句&#xff1a;“我个人认为...”。今天反思一下这个习惯是怎么养成的以及这个习惯有没有存在的必要。 跟任何习惯一样&…

第14天hcip笔记

LDP----标签分发协议---主要应用在MPLS的控制层面 MPLS控制器层面需要完成的工作只要就是分配标签。分配标签的前提是本地路由表中得先 存在标签&#xff0c;传递标签的前提也是得具备路由基础。所有&#xff0c;LDP想要正常工作&#xff0c;则需要IGP作为基础 1&#xff0c;分…

FileSystemObject和Folders使用详细介绍

创建FileSystemObject 我们可以利用FileSystemObject来读取文件。一般的步骤如下&#xff1a; 1&#xff09;利用CreateObject来创建FileSystemObject对象 2&#xff09;利用GetFolder来指定搜索的文件夹 3&#xff09;利用Files命令显示文件 4&#xff09;利用For each来遍历整…

hcip第15天笔记

企业网的三层架构 --- 企业网搭建时的一个参考建议方案 园区 --- 工厂&#xff0c;政府机关&#xff0c;商场&#xff0c;写字楼&#xff0c;校园&#xff0c;公园等这些公共场所为了实现数据互通而搭 建的网络我们都可以称为园区网 ---- “城市&#xff0c;除了街道&#xff0…

android 动态壁纸

引用&#xff1a;http://www.ophonesdn.com/article/show/278 http://developer.android.com/resources/samples/CubeLiveWallpaper/src/com/example/android/livecubes/cube1/CubeWallpaper1.html 标签 : 动态壁纸 Live Wallpapers 时间壁纸 TimeWall 随着三星Oscar的上市&…

第十五天实验-VLAN

一&#xff0c;创建VLAN [sw1]vlan batch 2 to 6 [sw2]vlan batch 2 to 6 [sw3]vlan batch 2 to 6 二&#xff0c;通过需求修改接口 SW1&#xff1a; [sw1]int g0/0/2 [sw1-GigabitEthernet0/0/2]port link-type access ---将接口设置为access [sw1-GigabitEthernet0/0/2]…

hcip第17天

1&#xff0c;禁用 --- 1&#xff0c;接口关闭情况下&#xff1b;2&#xff0c;接口禁用生成树协议 2&#xff0c;阻塞 --- 生成树协议激活接口后进入的第一个状态。该状态下&#xff0c;接口只能侦听BPDU&#xff0c;不能转发BPDU和业务帧&#xff0c;也不能学习MAC地址一开始…

账户配置 三: Gmail

书接上文&#xff0c;Gmail也是大家常用的邮件之一&#xff0c;在Windows Phone 7中配置Gmail非常容易。我们来看看怎样快速配置Gmail。 操作&#xff1a; 找到“设置”并点击进入选择“电子邮件和账户”选择“添加账户”选择“Google”填写“邮件地址”和“密码”并点击“登录…

[深入学习C#]LINQ查询表达式详解(1)——基本语法、使用扩展方法和Lambda表达式简化LINQ查询

此文章非原创,转载自诗人江湖老,原文地址 在Git上下载源码   在工程中我们少不了要定义类或者结构去储存数据&#xff0c;这些数据将被临时地储存在内存中&#xff0c;现在我们想要对其完成一些类似于查找、过滤等等常见的任务的时候&#xff0c;我们该如何去做呢&#xff1…

hcip第18天

链路聚合 --- 可以将多个物理接口捆绑成一个逻辑接口&#xff0c;即将N条物理链路聚合为一条逻辑链路。可以在不升级硬件的条件下&#xff0c;达到增加带宽的效果。 我们将逻辑链路&#xff0c;称为聚合链路&#xff0c;在华为设备中称为ETH-TRUNK链路&#xff08;这个技术是针…

x264编码参数大测试:08 subme与指定码率(1000Kbps)

一、测试内容 测试方法—— x264编码参数大测试&#xff1a;索引贴 http://www.cnblogs.com/zyl910/archive/2011/12/14/x264_encode_param.html 测试参数—— subme&#xff1a;9、10、11。设定子像素&#xff08;subpixel&#xff09;运动估计&#xff08;motion estimation&…

第十八天实验-交换综合

配置思路 eth-trunk &#xff1e; 创建vlan &#xff1e; 划分vlan &#xff1e; trunk干道 &#xff1e; STP &#xff1e; SVI &#xff1e; VRRP &#xff1e; DHCP 一&#xff0c;配置eth-trunk SW&#xff11;&#xff1a; [sw1]int Eth-Trunk 0 ---创建…

HCIA第九节课作业

子网划分&#xff1a; 如何去合理的分配地址 总共需要多少个网段&#xff1f; 14个网段 环回接口8个6个 192.168.1.0/14 借4位 192.168.1.0/28 192.168.1.16/28 192.168.1.32/28 192.168.1.48/28 可用地址数量是多少?14个地址 子网划分第多少位的时候,只有两个可…

如何下载防盗链的歌曲?

初音&#xff0c;大家都很熟悉了。它是YAHAMA&#xff08;雅马哈&#xff0c;就是生产电子琴的那个公司&#xff09;推出的音乐编辑软件vocaloid的一款产品。 1月27号&#xff08;春节放假回来的前一天&#xff09;就要推出vocaloid 3啦&#xff01;&#xff01; 很喜欢IA的《鸟…

如何发布.Net MVC 网站项目(攻略集锦)

转载自诗人江湖老&#xff0c;原文地址 参考文献既然是攻略&#xff0c;就必然有参考文献&#xff0c;放在文章开头&#xff0c;以示敬意&#xff01; 1.MVC项目发布步骤 2.未能从程序集加载“System.ServiceModel.Activation.HttpModule” 3. Win7 IIS 另一个程序正在使用此…

ssh建立原理 及配置两台主机的远程连接实现免密登陆

一、SSH是什么&#xff1f;具体的实现有哪些&#xff1f; SSH是一种协议标准 SSH是用在安全远程登录以及其它安全网络服务 二、SSH原理&#xff1a; SSH为Secure Shell的缩写&#xff0c;默认端口22&#xff0c;由IETF的网络小组&#xff08;Network Working Group&…

常用 SQL Server 规范集锦

原文地址 常见的字段类型选择   &#xff11;.字符类型建议采用varchar/nvarchar数据类型   &#xff12;.金额货币建议采用money数据类型   &#xff13;.科学计数建议采用numeric数据类型   &#xff14;.自增长标识建议采用bigint数据类型 (数据量一大&#xff…

Linux服务器搭建----Web服务器(apache)

WWW的介绍 万维网&#xff08;亦作“Web”、“WWW”、“W3”&#xff0c;英文全称为“World Wide Web”&#xff09;&#xff0c;是一个由许多互相链接的超文本组成的系统&#xff0c;通过互联网访问。在这个系统中&#xff0c;每个有用的事物&#xff0c;称为一样“资源”&…