安卓 Fragment (未完)

学习笔记 - https://mp.weixin.qq.com/s/VPJDRhjOqHX0_l7FGJ4FEQ

概述

Fragment 用于将 Activity 视图拆分为 多个区块进行模块化管理,(视图控制器),具备生命周期和事务,托管与 Activity 或另一个 Fragment。

从微型Activity 角度设计,太过复杂。

Fragment结构

FragmentActivity.java

Framgent 整体的代码框架

Fragment 宿主和 FragmentManager 是 1 : 1 的关系

生命周期

状态转移才是生命周期的本质(Activity 同理)。生命周期方法的本质是Fragment 状态转移,当生命周期方法被调用,说明 Fragment 从一个状态转移到另一个状态,而所谓的 “生命周期回调” 只是 Framework 提供给开发者使用的 Hook 点,用于在状态转移时执行自定义逻辑。


static final int INITIALIZING = 0;     初始状态,Fragment 未创建
static final int CREATED = 1;          已创建状态,Fragment 视图未创建
static final int ACTIVITY_CREATED = 2; 已视图创建状态,Fragment 不可见
static final int STARTED = 3;          可见状态,Fragment 不处于前台
static final int RESUMED = 4;          前台状态,可接受用户交互

Fragment 的生命周期主要受「宿主」、「事务」、「setRetainInstance() API」三个因素影响:当宿主生命周期发生变化时,会触发 Fragment 状态转移到 宿主的最新状态。不过,使用事务和 setRetainInstance() API 也可以使 Fragment 在一定程度上与宿主状态不同步(需要注意:宿主依然在一定程度上形成约束)。

posted @ 2021-07-14 14:33  MOSSLIFE  阅读(85)  评论(0)    收藏  举报