flutter 局部view更新,dialog更新进度,dialog更新

局部更新有好几种方法,本次使用的是 StatefulBuilder 定义 customState去更新对话框内容

Dart 复制代码
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

class ProgressDialog {
  final BuildContext context;
  BuildContext? dialogContext;
  double _progress = 0.0;
  bool _isShowing = false;
  StateSetter? mCustomState;

  ProgressDialog(this.context, this._progress);

  void show() {
    _isShowing = true;
    showDialog<void>(
      context: context,
      builder: (BuildContext context) {
        return StatefulBuilder(builder: (mDialogContext, customState) {
          mCustomState =customState;
          dialogContext = mDialogContext;
          return AlertDialog(
            title: const Text('下载中...'),
            content: Column(
              mainAxisSize: MainAxisSize.min,
              children: <Widget>[
                LinearProgressIndicator(value: _progress),
                Padding(
                  padding: const EdgeInsets.symmetric(vertical: 20.0),
                  child: Text('${(_progress * 100).toStringAsFixed(0)}%'),
                ),
              ],
            ),
          );
        });
      },
    );
  }

  void updateProgress(double progress) {
    if (_isShowing && null!=mCustomState) {
      (mCustomState!)(() {
        _progress = progress;
      });
    }
  }

  void hide() {
    if (dialogContext != null && _isShowing) {
      Navigator.of(dialogContext!).pop();
    }
    _isShowing = false;
  }

}

定义 StateSetter? mCustomState; 去set更新

使用

Dart 复制代码
   final ProgressDialog progressDialog = ProgressDialog(context, 0);
    progressDialog.show();


 更新进度
progressDialog.updateProgress(progress);

关闭对话框
progressDialog.hide();
相关推荐
用户99045017780094 分钟前
微信红包封面制作redbag-cover
前端
2401_860494705 分钟前
在React Native中开发进度条组件,可以使用多种方式来实现,包括使用内置的`ProgressViewharmony`(仅限harmony)
javascript·react native·react.js
帅气马战的账号110 分钟前
开源鸿蒙+Flutter 全场景分布式协同开发指南——组件化驱动的跨设备无缝体验实践
flutter
一人の梅雨10 分钟前
淘宝商品详情接口深度解析:从 Sign 签名动态生成到多端数据全息重构
开发语言·javascript·重构
christine-rr10 分钟前
windows系统上node.js安装配置教程
前端·windows·npm·node.js
海上彼尚12 分钟前
React18+快速入门 - 1.响应式机制之 useState 和 useReducer
前端·javascript·react.js
Chennnng13 分钟前
键盘参数选购
前端·css·计算机外设
Nan_Shu_61414 分钟前
熟悉RuoYi-Vue-Plus-前端 (3)
前端·javascript·vue.js
b***748817 分钟前
前端技术的加速变革:从工程体系到智能化时代的全栈重构
前端·重构
NOVAnet202317 分钟前
React曝“炸弹级”漏洞(CVE-2025-55182),CVSS 10.0分!已有在野利用,企业如何紧急防御
前端·react.js·网络安全·前端框架