我对我的代码有一些疑问。在此之前,我想在执行我创建的某个函数之前创建延迟 1 秒。这是我的代码:
Widget setProfile() {
return StreamBuilder(
stream: _sessionBloc.sessionLogin,
builder: (context, snapshot) {
if (snapshot.data == 200) {
return profileUser();
} else {
return notSignIn();
}
},
);
}
上面的代码表示如果snapshot have data like 200
,它将显示小部件profileUser()
,但是如果snapshot doesn't have data
,它将显示小部件notSignIn()
。但我希望这些数据有这样的流动:
首先,在点击这个函数或获取数据之前,它会显示一些小部件,比如加载小部件 1 秒,然后它会先运行
if
或到else
。
你可能会问,为什么要这样呢?
事实上,我在shared_preferences 中有一些数据,比如status
type int
。我知道共享首选项是本地的,但是当我获得一个status
值为 200 的数据时。它显示延迟一毫秒,就像闪烁一样。我不知道为什么会这样。已经在这里问了,但没有解决方案。所以,最后,我决定通过添加 1 秒的延迟来克服这个问题,并按照我上面的要求调出一些小部件。谁能帮我?
您没有检查ConnectionState
. https://api.flutter.dev/flutter/widgets/StreamBuilder-class.html 中的示例将向您展示如何在 Stream 仍在加载时显示中间消息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句