进度栏如何使用flutter提供程序侦听值更改并更新另一个小部件?

问题描述

**这是我的提供商**

MultiProvider(
   child: MyApp(),providers: [

  
  ChangeNotifierProvider(create: (BuildContext context)=> Downloads(),),)]

***当我打印出_progress时,此类实现了notifylistner,所有这些都可以正常工作 但ui 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()));
  }
}

*这只是一个片段,其中调用了Download函数*

if (message['event'] == EV_PROGRESS) {
        
        Downloads().setProgress(message['progress']);

        
       
      }
      if (message['event'] == EV_DONE) {
        
        
        Downloads().setProgress(100);
        
       
      }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...