Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 循环压缩机指示器未及时触发_Flutter - Fatal编程技术网

Flutter 循环压缩机指示器未及时触发

Flutter 循环压缩机指示器未及时触发,flutter,Flutter,有一个国家级的 class _SignUpFormState extends State<SignUpForm> { bool _isProcessing = false; ... _iProcessing在此函数中触发 void _submit() { setState(() { _isProcessing = true; }); // doing something heavy that takes a while Nav

有一个国家级的

class _SignUpFormState extends State<SignUpForm> {
  bool _isProcessing = false;
  ...
_iProcessing在此函数中触发

void _submit() {
    setState(() {
      _isProcessing = true;
    });

    // doing something heavy that takes a while

    Navigator.push(
    context,
    MaterialPageRoute(
        builder: (context) => TabPage(),
    ),
);

问题是
循环ProgressIndicator
在导航到其他屏幕之前运行了很短的时间。它是否应该在上面代码中所示的长期过程之前运行?

您的繁重任务不是异步的(因为您的方法不是异步的),那么它就不需要时间了


如果您想在一段时间内显示CircularProgressIndicator,那么您可以使您的方法异步,并增加将来的延迟。

您最重要的事情不是异步的(因为您的方法不是异步的),那么它将不需要时间


如果您想在一段时间内显示CircularProgressIndicator,那么您可以使您的方法异步,并增加将来的延迟。

这很有趣,但如何从同步方法生成异步方法呢?那个长期的过程不是返回Future,而是void。若您使方法异步,那个么它将不会返回Future对象。您可以按照以下方式使方法异步Future _submit()async{您读过这篇文章吗,上面说“Dart无论如何都会尝试同步运行它”他正在考虑这个特殊情况,因为该函数不用于任何进程,它不是异步方法。@VirenVVarasadiya,我们不知道实际的“重”代码一开始是异步的,或者不是。这很有趣,但是如何从同步方法中生成异步方法呢?长期过程不是返回未来,而是无效的。如果将方法生成异步,那么它将不会返回未来的对象。您可以按照下面的方式将方法生成异步未来_submit()异步{您读过这篇文章吗,它说它是“Dart无论如何都会尝试同步运行它”他谈到了这个特殊情况,因为该函数不用于任何进程,也不是异步方法。@VirenVVarasadiya,我们不知道实际的“重”代码是异步的还是不发布“重”的代码thing@Sidak这就足够了
void main(){var j;for(var i=0;i<1000000;i++){j=i-1;}
在短时间内,它能运行多长时间?比如瞬间或一段时间内可见while@Sidak不管需要多长时间,因为这只是一个示例来说明问题代码中发生了什么。你没有抓住要点。我要求提供代码的原因是为了让我能够理解它是否本质上是异步的。因此,如果可能,将实际代码/帮助我更好地理解任务性质的精简版本置于“繁重”的代码之后thing@Sidak这对于(vari=0;i<1000000;i++){j=i-1;}在短时间内,它能运行多长时间?比如瞬间或一段时间内可见while@Sidak不管需要多长时间,因为这只是一个示例来说明问题代码中发生了什么。你没有抓住要点。我要求提供代码的原因是为了让我能够理解它是否本质上是异步的。因此,如果可能,将实际的代码/精简版本放入其中,以帮助我更好地理解任务的性质
void _submit() {
    setState(() {
      _isProcessing = true;
    });

    // doing something heavy that takes a while

    Navigator.push(
    context,
    MaterialPageRoute(
        builder: (context) => TabPage(),
    ),
);