flutter ProgressDialog似乎具有影响所有实例的静态字段

问题描述 投票:0回答:1

我在运行时ProgressDialog失败时遇到问题。有几个问题,但是最大的问题是,在正确的情况下,调用dismiss时ProgressDialog将不会关闭。相反,我看到日志条目“ ProgressDialog已经被关闭”。一旦发生这种情况,应用程序将随着ProgressDialog旋转而冻结。

我的测试表明,即使我在要使用ProgressDialog的新实例时,以前的活动也正在渗入并影响ProgressDialog的所有实例。

这里的应用程序是我可以构建以显示问题的最小应用程序。在此示例中,关闭有效,但是一旦在一个实例中设置了“消息”字段,它就会渗入到另一个未设置“消息”的实例中。]

任何见识将不胜感激。

import 'dart:async';
import 'package:progress_dialog/progress_dialog.dart';
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  MyHomePage() ;

  @override
  Widget build(BuildContext context) {
    final test1Button = Material(
      borderRadius: BorderRadius.circular(30.0),
        color: Color(0xff01A0C7),
      child: MaterialButton(
        onPressed: () {
          print("Test1");
          final ProgressDialog pr = new ProgressDialog(context);
          pr.style(message: "Test 01");
          pr.show();
          new Timer(Duration(seconds: 3), () {
                pr.dismiss();
          });
        },
        child: Text("Test 01"),
      ),
    );
    final test2Button = Material(
      borderRadius: BorderRadius.circular(30.0),
      color: Color(0xff01A0C7),
      child: MaterialButton(
        onPressed: () {
          final ProgressDialog pr = new ProgressDialog(context);
          pr.show();
          new Timer(Duration(seconds: 3), () {
            pr.dismiss();
          });
        },
        child: Text("Test 02"),
          ),
        );

    return Scaffold(
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            test1Button,
            test2Button,
          ],
        ),
      ),
    );
  }
}

我在运行时ProgressDialog失败时遇到问题。有几个问题,但是最大的问题是,在适当的情况下,当...

flutter dart progressdialog
1个回答
0
投票

嗯,当您检查进度对话框source code时,将设置为:

© www.soinside.com 2019 - 2024. All rights reserved.