微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决进度栏如何使用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 举报,一经查实,本站将立刻删除。