Android 基础 View 控件系列之 Fragment

640?wx_fmt=gif

640?wx_fmt=gif

极力推荐Android 开发大总结文章:欢迎收藏程序员Android 力荐 ,Android 开发者需要的必备技能

640?wx_fmt=jpeg

Fragment 片段,在Activity 中常用于负责用户界面部分,可以将多个Fragment组合在一个Activity中来创建多窗口UI,或者在Activity中重复使用某个Fragment。您可以将Fragment 视为Activity的模块化组成部分,Fragment具有自己的生命周期,能接收自己的输入事件,并且可以在Activity运行时候添加或者移除Fragment

注意:

通过本章学习,将掌握Fragment的基本使用方法。主要知识点如下:

  1. Fragment 的设计原理

  2. Fragment 的生命周期

  3. Fragment 在宿主Activity 中的生命周期

  4. Fragment 在Activity 中的使用方法

  5. Activity获取 Fragment 的方法

  6. Fragment 获取宿主Activity 的方法

  7. 两个Fragment 通讯的方法

  8. Fragment 与Activity 通讯方法

Fragment 简介

Fragment 继承关系如下:

java.lang.Object
   ↳ android.app.Fragment

1. Fragment的设计原理

Fragment主要是为了给大屏幕(平板等)上更加动态和灵活的UI设计提供支持。由于平板电脑的屏幕比手机屏幕大得多,因此可用于组合和交换UI 组件的空间更大。利用Fragment实现此类设计时,您无需管理对视图层次结构的复杂更改。 通过将 Activity布局分成Fragment,您可以在运行时修改Activity 的外观,并在由 Activity 管理的返回栈中保留这些更改。

您应该将每个Fragment都设计为可重复使用的模块化Activity 组件。也就是说,由于每个Fragment 都会通过各自的生命周期回调来定义其自己的布局和行为,您可以将一Fragment加入多个Activity,因此,您应该采用可复用式设计,避免直接从某个Fragment直接操纵另一个Fragment。 这特别重要,因为模块化片段让您可以通过更改Fragment的组合方式来适应不同的屏幕尺寸。 在设计可同时支持平板电脑和手机的应用时,您可以在不同的布局配置中重复使用您的Fragment,以根据可用的屏幕空间优化用户体验。 例如,在手机上,如果不能在同一 Activity内储存多个片段,可能必须利用单独片段来实现单窗格UI

640?wx_fmt=png

通过两个Fragment组合成一个Activity适应平板,通过一个Fragment来适应手机

2.Fragment 生命周期

  • Fragment生命周期图

    640?wx_fmt=png

    Fragment 生命周期图

  • Fragment 生命周期回调方法

640?wx_fmt=jpeg

Fragment 生命周期回调 方法

3.Fragment 在宿主Activity 的生命周期

Fragment不能脱离Activity而存在,其生命周期受Activity 生命周期影响

640?wx_fmt=jpeg

Activity于Fragment生命周期交互图

640?wx_fmt=png

Log 打印信息如上

4.Fragment 在Activity中的使用方法

1.静态添加Fragment到Activity

1.创建自定义Fragment类

640?wx_fmt=png

自定义Fragment类

2.在Activity 的xml中引用<fragment/> 标签

640?wx_fmt=png

<fragment/> 标签布局使用在xml中

2. 动态添加Fragment到Activity中

1.创建自定义Fragment类 同上

640?wx_fmt=png

自定义Fragment类

2.创建Fragment填充布局载体

640?wx_fmt=png

创建Fragment填充布局

3.使用FragmentManager动态填充

创建容器接收Fragment ---> Activity中 使用FragmentManagerlFragment进行交互--->开启事务--->Fragment 填充到创建的容器中 ---->提交事务

640?wx_fmt=png

使用FragmentManager动态填充 框架

5.Activity 中获取Fragment

640?wx_fmt=png

Activity 中获取Fragment

6.Fragment 获取宿主Activity的方法

  • getActivity() 方法获取宿主Activity

    640?wx_fmt=png

    getActivity() 方法获取宿主Activity

7.两个Fragment的通讯的方法

  • 通过宿主Activity 到FragmentManger 方法获取不同的Fragment

640?wx_fmt=png

两个Fragment的通讯的方法

8.Fragment 与 Activity通讯方法

1.Activity 调用 setArguments 方法

640?wx_fmt=png

Activity 调用 setArguments 方法

2.通过Fragment 对外提供接口方法

通过Fragment对外提供接口方法,供Activity调用

640?wx_fmt=png

通过Fragment 对外提供接口方法

640?wx_fmt=jpeg

至此,本篇已结束,如有不对的地方,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!

640?wx_fmt=jpeg

如有侵权,请联系小编,小编对此深感抱歉,届时小编会删除文章,立即停止侵权行为,请您多多包涵。

640?wx_fmt=jpeg

既然都看到这里,领两个红包在走吧!以下两个红包每天都可以领取

1.支付宝搜索 522398497,或扫码支付宝红包海报。

支付宝扫一扫,每天领取大红包

2.微信红包,微信扫一扫即可领取红包

微信扫一扫,每天领取微信红包

小礼物走一走,来简书关注我

posted @ 2018-12-06 08:51  程序员Android的博客  阅读(163)  评论(0编辑  收藏  举报