总结
可以看出,笔者的工作学习模式便是由以下 「六个要点」 组成:
❝ 多层次的工作/学习计划 + 番茄工作法 + 定额工作法 + 批处理 + 多任务并行 + 图层工作法❞
希望大家能将这些要点融入自己的工作学习当中,我相信一定会工作与学习地更富有成效。
下面是我学习用到的一些书籍学习导图,以及系统的学习资料。每一个知识点,都有对应的导图,学习的资料,视频,面试题目。
**如:我需要学习 **Flutter的知识。(大家可以参考我的学习方法)
- Flutter 的思维导图(无论学习什么,有学习路线都会事半功倍)
- Flutter进阶学习全套手册
- Flutter进阶学习全套视频
大概就上面这几个步骤,这样学习不仅高效,而且能系统的学习新的知识。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
}
}
2,StatefulWidget动态:持有的状态可能在widget生命周期中发生变化. 实现一个 stateful widget 至少需要两个类:
(1)一个 StatefulWidget类。(2)一个 State类,在State类中实现build方法。通过setState()方法渲染UI界面。 StatefulWidget类本身是不变的,但是 State类在widget生命周期中始终存在。
**三,StatefulWidget生命周期**
1,createState:当要创建新的StatefulWidget的时候,会立即执行,且只执行一次。该方法是必须要实现的。
2,initState:widget创建完成后执行的第一个方法,并只执行一次,这时view并没有渲染,但是StatefulWidget已经被加载到渲染树中,mount值变为true,可以做初始化工作,类似于onCreate;
3,didChangeDependencies:第一次创建时会在initState之后调用,以后只要当State对象依赖的InheritedWidget发生变化时会被调用,刷新时并不会调用;
4,build:第一次创建时会在didChangeDependencies后调用,当UI重新渲染时也会调用;
5,addPostFrameCallback:渲染结束的回调,只会被调用一次,之后刷新UI时也不会被调用。
import ‘package:flutter/scheduler.dart’;
@override
void initState() {
super.initState();
SchedulerBinding.instance.addPostFrameCallback((_) => {});
}
6,reassemble:只有热加载时会被调用,在Release模式下永远不会被调用;
7,didUpdateWidget:当树rebuild的时候会被调用;
8,deactivate:当State对象从树中被移除时调用;
9,dispose:当state对象从树中被永久移除时调用,这时mount值变为false,可以在回调中释放资源。
![](https://img-blog.csdnimg.cn/20200416171647434.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ppdWppYW9wYW5kdW9sYQ==,size_16,color_FFFFFF,t_70)
图片来源[https://www.jianshu.com/p/f39cf2f7ad78]( )
App的生命周期:resumed、inactive、paused、suspending
创建一个widget到显示:createState->initState->didChangeDependencies->build->addPostFrameCallback;
退出页面:deactivate->dispose;
点击热加载:reassemble->didUpdateWidget->build;
由显示切换到后台:AppLifecycleState .inactive->AppLifecycleState .paused;
后台回到前台:AppLifecycleState .inactive->AppLifecycleState .resumed.
**四,一些常见的widget**
1,MaterialAPP:可以看做是根widget,可设置title、home、routes、theme、color等;
2,Container:容器widget;
### 最后
如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。
![](https://img-blog.csdnimg.cn/img_convert/07d6eb74e6c7045f6ed2b493dfe97751.webp?x-oss-process=image/format,png)
> 最后针对Android程序员,我这边给大家整理了一些资料,包括不限于高级UI、性能优化、移动架构师、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter等全方面的Android进阶实践技术;希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化学习资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618156601)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
需要这份系统化学习资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618156601)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**