我很困惑什么时候dispose在颤振中使用。有没有关于这方面的好教程?
在食谱https://flutter.io/docs/cookbook/forms/focus 中:
void dispose() {
// Clean up the focus node when the Form is disposed
myFocusNode.dispose();
super.dispose();
}
Run Code Online (Sandbox Code Playgroud)
为什么我必须打电话myFocusNode.dispose();?如果我不打电话会怎样?
请解释清楚一点,或者给我一些明显的错误代码示例,当不为 FocusNode 调用 dispose 或其他情况而不是简单地告诉我这会导致内存泄漏时,会显示不良结果...
非常感谢。
我已经用谷歌搜索了几个小时了。但不同的人给出不同的答案。有人说4个空格是Markdown的标准,有人说3个空格是Markdown的标准。我很困扰。谁能简单地告诉我推荐的标准是什么?谢谢。
我知道2个空格、3个空格和4个空格都有效。但我只是想知道正式标准是什么。非常感谢。
是否可以在 flutter 中播放设备(对于 android 和 ios)的默认通知声音?我试过了SystemSound.play(SystemSoundType.click);,没有任何作用。谢谢。
在 Flutter 文档中,它使用jsonEncode(),而在 Angular 文档中,它使用json.encode(). 两者之间的区别和首选方式是什么?
我使用 StreamBuilder、StreamController、BehaviorSubject、Stream 等已经有一段时间了。但我仍然对一些定义感到困惑。特别是这个问题,StreamController 和 BehaviorSubject 是 Dart 中的一个流吗?
我之所以有这个问题,是因为我可以在网上找到以下单词/引用:
从在线文档的上述 4 点来看,它给了我:BehaviorSubject 是一个 Observable,然后是一个 Stream。所以 BehaviorSubject 是一个流。BehaviorSubject 也是一个 StreamController。因此 StreamController 是一个流。
但是如果 StreamController 是一个 Stream,这将与其他一些文章相矛盾,即 Stream 实际上是 StreamController 的一部分,并且您从 StreamController.stream 获取 Stream。
如果说到 Sink,就会更加混乱。
StreamController 实现了 StreamSink。所以 Sink 是一个特殊的 StreamController。
因此,从以上所有单词中,我得出以下结果:
BehaviorSubject = StreamController = Observable = Stream = Sink
最后,一切都是一样的……我疯了吗?
编辑:(我现在明白了。希望它是正确的)
为了澄清我的困惑,我想我必须理解"BehaviorSubject is a special …
我经常使用 vscode 中的 Markdown 预览功能。
我发现 Markdown 预览面板中代码围栏语法突出显示语言支持与 vscode 支持的语言列表不同。我试图用谷歌搜索这个,但找不到任何有用的信息。
例如,shell在 Markdown 预览中,代码围栏适用于终端语法而不是 shellscript/bash,并且它在 vscode 语言支持中不存在。
在文档https://github.com/flutter/flutter/wiki/Obfuscating-Dart-Code 中,它说Add the following flag to the build aot call in the <ProjectRoot>/packages/flutter_tools/bin/xcode_backend.sh file。
但是我根本没有目录<ProjectRoot>/packages/。我必须以某种方式创建它吗?非常感谢。
我使用的是 MacOS,没有手动运行任何 flutter 进程,并且已成功退出 VS Code 编辑器。但在 Activity Monitor 应用程序中,我看到一个dart进程正在运行并正在消耗我的 CPU。
ps -ef | grep -i dart
501 11462 1 0 1:16AM ?? 14:51.36 /path/flutter/bin/cache/dart-sdk/bin/dart /path/flutter/bin/cache/flutter_tools.snapshot daemon
Run Code Online (Sandbox Code Playgroud)
它是什么?我等了15分钟,它还在运行。所以我干脆杀了它。
我正在尝试创建一个顶级函数:
\nIterable<E> mapEnumerated<T>(Iterable<T> iterable, E Function<E>(int, T) fn) sync* {\n var index = 0;\n for (final item in iterable) {\n yield fn(index++, item);\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n但是,它报告错误消息:The name \'E\' isn\'t a type so it can\'t be used as a type argument.。
然后,我尝试将其更改为以下内容,上面的错误消失了,我不知道为什么,但我仍然无法使用它:
\nIterable mapEnumerated<T>(Iterable<T> iterable, E Function<E>(int, T) fn) sync* {\n var index = 0;\n for (final item in iterable) {\n yield fn(index++, item);\n }\n}\n\n\nvoid main() {\n List<String> strs = mapEnumerated([5, 6, 7], \n (i, e) …Run Code Online (Sandbox Code Playgroud)