Flutter字体与进度对话框插件simple_fontellico_progress_dialog的使用

发布于 1周前 作者 h691938207 来自 Flutter

Flutter字体与进度对话框插件simple_fontellico_progress_dialog的使用

描述

Simple Fontellico Progress Dialog ⌛ 是一个用于渲染不同类型的加载指示器进度对话框窗口的Flutter包。以下是该插件的一些新特性、安装方法、使用示例以及更多详细信息。

新特性 💥

  • 内部改进
  • 构造函数中的可选参数
  • 修复bug
  • 更新示例

安装

要在您的项目中使用这个包,需要在 pubspec.yaml 文件中添加依赖:

dependencies:
  flutter:
    sdk: flutter
  simple_fontellico_progress_dialog: latest_version # 请替换为最新版本号

使用方法

首先,导入此包到您的Dart文件中:

import 'package:simple_fontellico_progress_dialog/simple_fontico_loading.dart';

然后创建一个新的实例并传递上下文作为参数(必需)。

示例代码

下面是一个完整的示例应用程序,演示了如何使用 simple_fontellico_progress_dialog 包来显示不同类型的进度对话框:

import 'package:flutter/material.dart';
import 'package:simple_fontellico_progress_dialog/simple_fontico_loading.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Simple Fontellico Progress Dialog Demo',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key}) : super(key: key);

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {

  SimpleFontelicoProgressDialog? _dialog;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Simple Fontellico Progress Dialog Demo'),
      ),
      body: Center(
        child: GridView.count(
          primary: false,
          padding: const EdgeInsets.all(20),
          crossAxisSpacing: 8,
          mainAxisSpacing: 8,
          crossAxisCount: 2,
          children: <Widget>[
            ElevatedButton(
              onPressed: (){ _showDialog(context, SimpleFontelicoProgressDialogType.normal, 'Normal'); }, 
              child: const Text('Normal'),
            ),
            ElevatedButton(
              onPressed: (){ _showDialog(context, SimpleFontelicoProgressDialogType.normal, 'Normal Vertical'); }, 
              child: const Text('Normal Vertical'),
            ),
            // 更多按钮...
            ElevatedButton(
              onPressed: (){ _showDialog(context, SimpleFontelicoProgressDialogType.custom, 'Custom'); }, 
              child: const Text('Custom'),
            ),
            // 注意:为了简洁起见,省略了一些ElevatedButton,实际应用中应包含所有类型
          ],
        ),
      ),
    );
  }

  void _showDialog(BuildContext context, SimpleFontelicoProgressDialogType type, String text) async{
    _dialog ??= SimpleFontelicoProgressDialog(context: context);
    
    // 根据不同的类型和文本设置对话框属性
    if(type == SimpleFontelicoProgressDialogType.custom) {
      _dialog!.show(message: text, type: type, width: 150.0, height: 75.0, loadingIndicator: const Text('C', style: TextStyle(fontSize: 24.0),));
    } else if (text == 'Normal Vertical') {
      _dialog!.show(message: text, type: SimpleFontelicoProgressDialogType.normal, horizontal: false, width: 150.0, height: 75.0, hideText: false, indicatorColor: Colors.red);
    } else if (text == 'Updating') {
      _dialog!.show(message: text, type: SimpleFontelicoProgressDialogType.normal, horizontal: true, width: 150.0, height: 75.0, hideText: false, indicatorColor: Colors.red);
      await Future.delayed(const Duration(seconds: 1));
      _dialog!.updateMessageText('Changing text');
    } else {
      _dialog!.show(message: text, type: type, horizontal: true, width: 150.0, height: 75.0, hideText: false, indicatorColor: Colors.red);
    }
    
    // 模拟异步操作后隐藏对话框
    await Future.delayed(const Duration(seconds: 1));
    _dialog!.hide();
  }
}

构造函数

构造函数接受以下两个必需参数:

名称 描述 是否必需 默认值
context 渲染对话框所需的构建上下文 -
barrierDismissible 对话框是否可以通过点击背景关闭 true

show 方法属性

名称 描述 是否必需 默认值
message 设置对话框内的消息文本 -
type 简单对话框类型(normal, threeline, multiline, refresh, hurricane, phoenix, iphone等) normal
其他样式属性如宽度、高度、颜色等 见上表

updateMessageText 方法属性

名称 描述 是否必需 默认值
message 更新已打开对话框内的消息文本 -

以上就是关于 simple_fontellico_progress_dialog 的基本介绍和使用指南。希望对您有所帮助!如果您有任何问题或需要进一步的帮助,请随时提问。


更多关于Flutter字体与进度对话框插件simple_fontellico_progress_dialog的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter字体与进度对话框插件simple_fontellico_progress_dialog的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用simple_fontellico_progress_dialog插件来显示字体和进度对话框的示例代码。这个插件结合了Fontellico图标库和进度对话框功能。

首先,确保你已经在pubspec.yaml文件中添加了simple_fontellico_progress_dialog依赖:

dependencies:
  flutter:
    sdk: flutter
  simple_fontellico_progress_dialog: ^最新版本号  # 请替换为最新的版本号

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

接下来,你可以在你的Flutter项目中导入并使用这个插件。以下是一个完整的示例,展示了如何使用SimpleFontellicoProgressDialog来显示带有Fontellico图标的进度对话框:

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  SimpleFontellicoProgressDialog? _progressDialog;

  @override
  void initState() {
    super.initState();
    // 初始化对话框
    _progressDialog = SimpleFontellicoProgressDialog(context);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Simple Fontellico Progress Dialog Demo'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () async {
            // 显示进度对话框
            _progressDialog!.show(
              title: 'Loading...',
              message: 'Please wait...',
              iconData: Icons.refresh, // 这里可以使用Fontellico图标,但需要先导入相应的图标集
              isDismissible: false,
            );

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

            // 关闭进度对话框
            _progressDialog!.dismiss();
          },
          child: Text('Show Progress Dialog'),
        ),
      ),
    );
  }

  @override
  void dispose() {
    // 释放资源
    _progressDialog?.dispose();
    super.dispose();
  }
}

请注意,上述代码示例中使用了Icons.refresh作为图标,但simple_fontellico_progress_dialog插件允许你使用Fontellico图标集。要使用Fontellico图标,你需要确保Fontellico图标集已经正确集成到你的项目中,并且你需要知道如何使用这些图标的代码。

由于simple_fontellico_progress_dialog的具体实现和API可能有所不同,你可能需要查阅该插件的官方文档或源代码来了解如何正确地使用Fontellico图标。通常,这涉及到在pubspec.yaml中引入Fontellico字体文件,并在代码中引用这些图标的代码。

如果插件文档提供了关于如何集成和使用Fontellico图标的具体说明,请按照那些说明进行操作。如果插件没有提供这些说明,你可能需要查找关于如何在Flutter中集成和使用自定义字体的通用指南。

回到顶部