),
/// 闪屏界面
class SplashPage extends GetView {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Image.asset(
R.LOGO_SPLASH_ID,
width: double.infinity,
height: double.infinity,
fit: BoxFit.cover,
));
}
}
GetBuilder
- GetBuilder相比Obx,GetBuilder是手动的状态管理器,需要更改的时候主动需要调用update();
- 因为GetBuilder是手动的状态管理器,所以相比Obx,内部没有维护StreamSubscription,内存消耗就会少
GetBuilder 源码还是很好理解的,点进去看下,就简单介绍下怎么使用
/// 必创参数,回调返回子widget
final GetControllerBuilder builder;
/// 默认是true; 如果Controller已经注册,如果是已懒加载的方式注册的,GetBuilder移除的时候删除
/// 删除controller,如果没有注册调用init初始化,GetBuilder移除的时候删除也删除controller
/// 设置false,调用init初始化,GetBuilder移除的时候删除也删除controller
final bool global;
/// 这个id很有用,如果同一个controller,被多个GetBuilder关联,当需要赛选其中一个刷新时候
/// 调用 update([‘id’]);
final Object id;
/// 同一个类型有多个不同的实例时,tag区分;唯一
final String tag;
/// 默认true,时候自动回收controller
final bool autoRemove;
/// 默认false 控制当GetBuilder移除的时候是否删除内存中的controller
final bool assignId;
/// 过滤器,控制刷新时机
final Object Function(T value) filter;
/// 对应state生命周期的回调
final void Function(State state) initState, dispose, didChangeDependencies;
final void Function(GetBuilder oldWidget, State state) didUpdateWidget;
/// 当controller没有注册的时候,初始化
final T init;
GetX
- Getx相比GetBuilder实现了自动响应数据变化,
- Getx相比Obx,内部可以初始化controller,以及state生命周期的回调,controller时候及时回收等;
- Getx相比GetBuilder、Obx效率要低,
MixinBuilder
- 看名字就知道融合Obx、GetBuilder功能
- 既可以手动控制刷新,也可以自动刷新;
- 内存消耗最多的,效率最低的
Getx还提供很多局部刷新的weidget ValueBuilder 、ObxValue等,都很简单,
这里有个很实用的技巧,例如
ObxValue((data) => Switch(
value: data.value,
onChanged: data, // Rx 有一个 _callable_函数! 你可以使用 (flag) => data.value = flag,
),
false.obs,
),
/// 响应数据data,data();会调用call()方法,自动赋值,自动刷新
T call([T v]) {
if (v != null) {
value = v;
}
return value;
}
如何成为Android高级架构师!
架构师必须具备抽象思维和分析的能力,这是你进行系统分析和系统分解的基本素质。只有具备这样的能力,架构师才能看清系统的整体,掌控全局,这也是架构师大局观的形成基础。 你如何具备这种能力呢?一是来自于经验,二是来自于学习。
架构师不仅要具备在问题领域上的经验,也需要具备在软件工程领域内的经验。也就是说,架构师必须能够准确得理解需求,然后用软件工程的思想,把需求转化和分解成可用计算机语言实现的程度。经验的积累是需要一个时间过程的,这个过程谁也帮不了你,是需要你去经历的。
但是,如果你有意识地去培养,不断吸取前人的经验的话,还是可以缩短这个周期的。这也是我整理架构师进阶此系列的始动力之一。
成为Android架构师必备知识技能
对应导图的学习笔记(由阿里P8大牛手写,我负责整理成PDF笔记)
部分内容展示
《设计思想解读开源框架》