Android Fragment概述及用法

 更新时间:2016年09月04日 14:43:01   投稿:lqh  
本文主要介绍Android Fragment的知识,这里整理了详细的资料及重要知识点,帮助大家学习理解Fragment,有需要的小伙伴可以参考下

       Fragment一般是宿主Activity UI的一部分或一种行为,作为Activity的整个View Hierarchy的一部分嵌入。我们可以将多个Fragment组合到一个Activity中创建一个多面界面,也可以在多个Activity中重用一个Fragment。

       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,包括fragment在加入activity的后退棧中时如何保持自己的状态,如何与activity以及其它fragment们共享事件,如何显示在activity的动作栏,等等。

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

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

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

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

        以上就是对Android Fragment的资料整理,后续继续补充相关资料,谢谢大家对本站的支持!  

相关文章

  • Android代码实现新年贺卡动画示例详解

    Android代码实现新年贺卡动画示例详解

    这篇文章主要为大家介绍了Android代码实现新年贺卡动画示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • 详解有关Android截图与录屏功能的学习

    详解有关Android截图与录屏功能的学习

    这篇文章主要介绍了详解有关Android截图与录屏功能的学习,详细介绍如何使用MediaProjection,MediaCodec以及MediaMuxer来实现简单的截屏和录屏功能。
    2017-04-04
  • Android使用ExpandableListView实现三层嵌套折叠菜单

    Android使用ExpandableListView实现三层嵌套折叠菜单

    这篇文章主要介绍了Android使用ExpandableListView实现三层嵌套折叠菜单,对布局感兴趣的同学可以参考下
    2021-04-04
  • Kotlin可见性修饰符详解

    Kotlin可见性修饰符详解

    本文详细讲解了Kotlin可见性修饰符,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-11-11
  • Android NavigationView头部设置监听事件

    Android NavigationView头部设置监听事件

    这篇文章主要为大家详细介绍了Android NavigationView头部设置监听事件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • Android HorizontalScrollView左右滑动效果

    Android HorizontalScrollView左右滑动效果

    这篇文章主要为大家详细介绍了Android HorizontalScrollView左右滑动效果的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • flutter实现底部导航栏

    flutter实现底部导航栏

    这篇文章主要为大家详细介绍了flutter实现底部导航栏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Android实现流光和光影移动效果代码

    Android实现流光和光影移动效果代码

    大家好,本篇文章主要讲的是Android实现流光和光影移动效果代码,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • Android中的Bmob移动后端云服务器功能

    Android中的Bmob移动后端云服务器功能

    这里介绍一个移动后端云服务器平台bmob,这不仅可以实现云数据库储存,还可以获取手机验证等,随时随地都很轻松,下面写一个小demo,实现一个登陆注册功能,认识增删查改
    2018-01-01
  • Flutter 阻止系统键盘弹出的优雅方式

    Flutter 阻止系统键盘弹出的优雅方式

    这篇文章主要为大家介绍了Flutter 阻止系统键盘弹出的优雅方式详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11

最新评论