flutter学习相关(自用)

100 阅读1分钟

textField中 FocusNode获取焦点

DropdownButton

把List<dynamic>转换成 指定的类型

List.from(elements)!

空安全

操作符 ? :放在类型后面表示当前变量可为null,例如 String a 和 String ? b ,a 不能为null,而 b 可以。
操作符 !:表示此变量值不为null,如果为null则会抛出异常。使用请慎重考虑。
延迟初始化
late 修饰符也有一些特殊的能力。虽然听起来起来有一些自相矛盾,但是您可以在一个包含初始化内容的字段上使用 late:

// Using null safety:
class Weather {
late int _temperature = _readThermometer();
}
当您这么声明时,会让初始化延迟执行。实例的构造将会延迟到字段首次被访问时执行,而不是在实例构造时就初始化。换句话说,它让字段的初始化方式变得与顶层变量和静态字段完全一致。当初始化表达式比较消耗性能,并且有可能不需要时,这会变得非常有用。

当您在实例字段上使用 late 时,延迟初始化会给您带来更多的便利。通常实例字段的初始化内容无法访问到 this,因为在所有的初始化方法完成前,您无法访问到新的实例对象。但是,使用了 late 让这个条件不再为真,所以您可以访问到 this、调用方法以及访问实例的字段

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/30d21af48bb64675a16e19c851a3f44b~tplv-k3u1fbpfcp-zoom-1.image)

```![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/3121a463e6a54f728b7f243cce49edd3~tplv-k3u1fbpfcp-zoom-1.image)
![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/80de2ba0826548d8959c52c95afd499a~tplv-k3u1fbpfcp-zoom-1.image)
![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ceeb2dd41b3a462aaa24f8a865828b34~tplv-k3u1fbpfcp-zoom-1.image)

![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/35b1bad70c2a45abae338311d73c59de~tplv-k3u1fbpfcp-zoom-1.image)
![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/2a5bb5b25b9346ce9000dc88a4fcc11d~tplv-k3u1fbpfcp-zoom-1.image)
![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/e9e849b45aea4238a4b2bb928fce38f4~tplv-k3u1fbpfcp-zoom-1.image)
![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/21f10c6348324948957869cb3b8e6e5c~tplv-k3u1fbpfcp-zoom-1.image)