gpt4 book ai didi

Flutteronic 调度代码在下一个事件循环上运行的方法

转载 作者:行者123 更新时间:2023-12-02 02:24:55 25 4
gpt4 key购买 nike

这在其他语言中很常见。 JavaScript 中为 setTimeout(fn, 0),Swift 中为 DispatchQueue.main.async() {}

如何在 Flutter 中最好地做到这一点?

我使用过 Future.delayed(Duration.zero).then(fn),但我不喜欢它,因为它像 JS 的 setTimeout 而不像 swifts DispatchQueue.main.async() {} 它并没有真正表达意图,仅表达行为。有没有一种方法是在 Flutter 中执行此操作的正确方法。

最佳答案

使用addPostFrameCallback

WidgetsBinding.instance
.addPostFrameCallback((timestamp) {
print("I'm running after the frame was built");
});

这将导致您的回调函数在 flutter 完成构建当前帧后立即运行。

请注意,回调只会运行一次,如果您想为每个构建重新安排它,请在构建函数的开头设置回调。

@override
Widget build(BuildContext context) {
WidgetsBinding.instance
.addPostFrameCallback((timestamp) {
print("I'm running after the frame was built");
});

return Container();
}

关于Flutteronic 调度代码在下一个事件循环上运行的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65831125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com