Flutter 如何更新Dialog中的状态

2020-09-22  本文已影响0人  AR7_

在使用Flutter过程中,出现showDialog更新不了UI的问题,现在要实现的是一个下载进度条的功能 ,所以需要实时刷新进度条,然后遇到的问题就是使用setState没有生效,看了一下网上的资料,就是说Dialog不是类似Android里一个弹窗而已,在Flutter里它和页面,也就是StatefulWidget/StatelessWidget是平级的,也就是使用的是不同的setState,那么当前使用setState指向的还是当前页面,当然不生效了,知道了这个问题,那么我们只需要使用showDialog的setState来更新进度条的数值即可。

    showDialog(
      barrierDismissible: false,
      context: context,
      builder: (context) {
        return StatefulBuilder(
          builder: (context, state) {
            mState = state;
            ......

我们只需要在builder中获取到这个showDialog的state,就可以全局使用了。

参考博文

上一篇下一篇

猜你喜欢

热点阅读