#android #flutter #dart #progress-bar #provider
#Android #flutter #dart #индикатор выполнения #поставщик
Вопрос:
** это мой поставщик **
MultiProvider(
child: MyApp(),
providers: [
ChangeNotifierProvider(create: (BuildContext context)=> Downloads(),),)]
*** этот класс реализует notifylistner, когда я распечатываю _progress, все работает правильно
но пользовательский интерфейс wiget не перезаписывается для выдачи выходных данных ***
class Downloads extends ChangeNotifier {
int _progress= 0;
int get progress => _progress;
void setProgress(int p) {
_progress = p;
notifyListeners();
}
}
я удалил виджет индикатора выполнения, чтобы упростить его отображение выходного значения
class FileDownload extends StatelessWidget {
const FileDownload({Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(body: progessUi());
}
}
class progessUi extends StatelessWidget {
const progessUi({Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
final model = Provider.of<Downloads>(context);
return Container(child: Text(model.progress.toString()));
}
}
* это всего лишь фрагмент, в котором выполняются вызовы функции загрузки *
if (message['event'] == EV_PROGRESS) {
Downloads().setProgress(message['progress']);
}
if (message['event'] == EV_DONE) {
Downloads().setProgress(100);
}