Flutter加载提示插件lib_loading_dialog的使用

Flutter加载提示插件lib_loading_dialog的使用

特性

  • 显示加载对话框
  • 显示进度对话框

开始使用

在使用 lib_loading_dialog 插件之前,请确保已将插件添加到您的项目中。您可以在 pubspec.yaml 文件中添加以下依赖:

dependencies:
  lib_loading_dialog: ^版本号

然后运行 flutter pub get 来获取新的依赖项。

使用方法

以下是如何使用 lib_loading_dialog 插件来显示加载对话框和进度对话框的示例。

显示加载对话框

var loadingDialog = showLoadingDialog(context);
loadingDialog.dismiss();

显示进度对话框

var progressDialog = showProgressLoadingDialog(context);
progressDialog.updateProgress(progress: 0.5);

完整示例代码

以下是一个完整的示例代码,展示了如何在应用中使用 lib_loading_dialog 插件。

import 'package:flutter/material.dart';
import 'package:lib_loading_dialog/loading_dialog.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  [@override](/user/override)
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: [
            // 按钮显示加载对话框
            ElevatedButton(
              onPressed: () {
                showLoadingDialog(context, barrierDismissible: true);
              },
              child: const Text('显示加载对话框'),
            ),
            const SizedBox(height: 40),
            // 按钮显示下载成功对话框
            ElevatedButton(
              onPressed: () {
                showDownloadSuccess(context);
              },
              child: const Text('显示下载对话框成功'),
            ),
            const SizedBox(height: 40),
            // 按钮显示下载失败对话框
            ElevatedButton(
              onPressed: () {
                showDownloadFailed(context);
              },
              child: const Text('显示下载对话框失败'),
            ),
          ],
        ),
      ),
    );
  }

  void showDownloadSuccess(BuildContext context) async {
    final dialog = showProgressDialog(context, msg: '正在下载...');
    // 模拟下载10秒,每秒更新一次进度
    for (var i = 0; i < 10; i++) {
      await Future.delayed(const Duration(seconds: 1), () {
        dialog.updateProgress(progress: i / 10.0, msg: '正在下载...');
      });
    }

    // 下载完成
    dialog.complete('下载完成');
  }

  void showDownloadFailed(BuildContext context) async {
    final dialog = showProgressDialog(context, msg: '正在下载...');
    // 模拟下载10秒,每秒更新一次进度
    for (var i = 0; i < 10; i++) {
      await Future.delayed(const Duration(seconds: 1), () {
        dialog.updateProgress(progress: i / 10.0, msg: '正在下载...');
      });
    }

    // 下载失败
    dialog.completeWithError('下载失败');
  }
}

更多关于Flutter加载提示插件lib_loading_dialog的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter加载提示插件lib_loading_dialog的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


lib_loading_dialog 是一个用于在 Flutter 应用中显示加载提示的插件。它可以帮助你在进行耗时操作时显示一个加载对话框,以提升用户体验。以下是如何在 Flutter 项目中使用 lib_loading_dialog 的步骤。

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 lib_loading_dialog 的依赖。

dependencies:
  flutter:
    sdk: flutter
  lib_loading_dialog: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 以安装依赖。

2. 导入包

在你的 Dart 文件中导入 lib_loading_dialog 包。

import 'package:lib_loading_dialog/lib_loading_dialog.dart';

3. 使用加载对话框

你可以使用 LoadingDialog.show() 来显示加载对话框,并使用 LoadingDialog.hide() 来隐藏它。

import 'package:flutter/material.dart';
import 'package:lib_loading_dialog/lib_loading_dialog.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: HomeScreen(),
    );
  }
}

class HomeScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Loading Dialog Example'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () async {
            // 显示加载对话框
            LoadingDialog.show(context, message: 'Loading...');

            // 模拟一个耗时操作
            await Future.delayed(Duration(seconds: 3));

            // 隐藏加载对话框
            LoadingDialog.hide(context);
          },
          child: Text('Show Loading Dialog'),
        ),
      ),
    );
  }
}

4. 自定义加载对话框

lib_loading_dialog 还允许你自定义加载对话框的外观和行为。你可以通过传递不同的参数来实现自定义。

LoadingDialog.show(
  context,
  message: 'Loading...',
  backgroundColor: Colors.black54,
  progressIndicatorColor: Colors.white,
  textStyle: TextStyle(color: Colors.white, fontSize: 16),
);

5. 处理多个加载对话框

如果你需要在同一个页面上显示多个加载对话框,可以使用不同的 context 来管理它们。

LoadingDialog.show(context1, message: 'Loading 1...');
LoadingDialog.show(context2, message: 'Loading 2...');
回到顶部