У меня возникли проблемы, когда ProgressDialog не работает во время выполнения. Есть несколько проблем, но самая большая проблема заключается в том, что при правильных обстоятельствах ProgressDialog не закроется, когда вызывается dismiss. Вместо этого я вижу запись в журнале "ProgressDialog уже удален". Как только это происходит, приложение останавливается с вращением ProgressDialog.
Мое тестирование показывает, что предыдущие действия кровоточат и влияют на все экземпляры ProgressDialog, даже если я создаю новые экземпляры ProgressDialog, когда я хочу его использовать.
Приложение - это самое маленькое приложение, которое я могу построить, чтобы показать проблему. В этом примере dismiss работает, но как только поле 'message' установлено в одном экземпляре, оно перетекает в другой экземпляр, где 'message' не установлено.
Любое понимание будет высоко оценено.
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,
],
),
),
);
}
}