开发者俱乐部

标题: Android Fragment使用全解析 [打印本页]

作者: xman    时间: 2016-12-5 00:44
标题: Android Fragment使用全解析

Fragment的使用可谓是老生常谈了~~~

1、概述

自API 11引入Fragment之后,Fragment可谓风靡一时,现在大部分项目都或多或少的用到了Fragment,其更轻量级,更加适用屏幕,更加方便UI设计等优势。说了这么多什么是Fragment呢?

Fragment:碎片,碎片是一个应用程序的用户界面和行为能够被放置在一个活动上。在其核心,它代表了一个特定的操作或界面,运行在一个更大的活动上。代表界面是因为可作为View在布局中进行使用,代表特定操作是因为包含生命周期可进行逻辑操作。简言之,Fragment就是一个带生命周期的组件。(若有问题恳请指正!)

Fragment的特点:

2、继承结构和生命周期

继承结构:  

Fragment直接继承Object,有四个直接子类,我个人对它的子类使用甚少。

生命周期:

Fragment的生命周期在图上标注的很清楚了就不赘述了。该图是很久之前收藏的,已忘记原出处,在此感谢原作者!

3、基本使用

1).静态使用

静态使用就是Fragment相当于控件一样在布局中使用。

TestFragment.java 继承Fragment重写onCreateView方法

fragment_main.xml

MainActivity.java 里面其实什么也没干。

activity_main.xml

使用 fragment 标签添加碎片,通过class指定碎片的完整类名。

运行效果:

2).动态使用

动态使用就是向Fragment布局容器中动态添加、替换、移除、隐藏、显示Fragment。

CommonFragment.java

通过构造方法传递数据的形式向TextView上设置内容。

fragment_common.xml

MainActivity.java

activity_main2.xml

通过 FrameLayout 标签创建Fragment的容器,底部四个Tab添加监听事件用于动态更换FrameLayout容器中的Fragment。

运行效果:

4、相关类及主要方法

FragmentManager碎片管理器,抽象类,具体实现在Android-support-v4.jar中的FragmentManagerImpl类中。

FragmentTransaction碎片事务类,抽象类,具体实现在BackStackRecord类中。添加、删除、替换等操作其实最终的实现还是在FragmentManagerImpl类中。

Fragment 碎片类

有兴趣大家可以去Read The Fucking Source,反正我看的比较头大…….







欢迎光临 开发者俱乐部 (http://xodn.com/) Powered by Discuz! X3.2