我通过一个集团向服务器发送数据并显示一个progressSnackBar
期间,然后显示一个successSnackBar
成功。有时这需要不到一秒钟的时间,根本不显示是有意义的progressSnackBar
——换句话说,等待一秒钟,然后检查状态是否仍然存在UpdatingAccount
。我已经尝试过不同的组合但失败了Future.delay(...)
,我可能会做一个setState
hack,但有没有办法在 bloc 监听器内部实现这一点?
BlocListener<AccountBloc, AccountState>(
listener: (BuildContext context, state) {
if (state is UpdatingAccount) { // <-- delay this
Scaffold.of(context)
..hideCurrentSnackBar()
..showSnackBar(progressSnackBar());
} else if (state is AccountUpdated) {
Scaffold.of(context)
..hideCurrentSnackBar()
..showSnackBar(successSnackBar());
}
},
// rest...
),