Flutter富文本弹窗插件rich_alert的使用

Flutter富文本弹窗插件rich_alert的使用

rich_alert

rich_alert 是一个用于 Flutter 应用程序的富文本弹窗包。它可以帮助你在 Flutter 应用中渲染一个非传统的弹窗对话框 😃。

支持

此插件支持在 Android 和 iOS 构建中使用。

添加到你的 Flutter 项目

pubspec.yaml 文件中添加 rich_alert 作为依赖项:

dependencies:
  rich_alert: ^0.1.32

然后运行以下命令以更新依赖项:

flutter pub get

使用插件

在 Dart 文件中导入库:

import 'package:rich_alert/rich_alert.dart';

示例

以下是一个简单的示例,展示如何使用 rich_alert 插件创建一个带有标题、子标题和警告类型的弹窗:

showDialog(
  context: context,
  builder: (BuildContext context) {
    return RichAlertDialog( // 使用自定义弹窗
      alertTitle: richTitle("警告标题"), // 设置弹窗标题
      alertSubtitle: richSubtitle("子标题"), // 设置弹窗子标题
      alertType: RichAlertType.WARNING, // 设置弹窗类型为警告
    );
  }
);

完整的示例代码如下:

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

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter 富文本弹窗示例',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Rich Alert Dialog'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  [@override](/user/override)
  _MyHomePageState 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(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              '点击按钮测试富文本弹窗',
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () {
          /// 使用 rich_alert 插件创建弹窗
          showDialog(
              context: context,
              builder: (BuildContext context) {
                return RichAlertDialog(
                  alertTitle: richTitle("警告标题"), // 设置弹窗标题
                  alertSubtitle: richSubtitle("这是一个子标题"), // 设置弹窗子标题
                  alertType: RichAlertType.WARNING, // 设置弹窗类型为警告
                  actions: <Widget>[ // 添加操作按钮
                    TextButton(
                      onPressed: () {
                        Navigator.pop(context); // 关闭弹窗
                      },
                      child: Text("确定"),
                    ),
                  ],
                );
              });
        },
      ), // 这个逗号使自动格式化更美观
    );
  }
}

更多关于Flutter富文本弹窗插件rich_alert的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter富文本弹窗插件rich_alert的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


rich_alert 是一个用于在 Flutter 应用中显示富文本弹窗的插件。它允许你在弹窗中显示带有不同样式(如加粗、斜体、颜色等)的文本,并且可以自定义按钮和其他 UI 元素。

安装插件

首先,你需要在 pubspec.yaml 文件中添加 rich_alert 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  rich_alert: ^1.0.0  # 请检查最新版本

然后运行 flutter pub get 来安装插件。

使用 rich_alert

以下是一个简单的示例,展示如何使用 rich_alert 插件来显示一个富文本弹窗:

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Rich Alert Example'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: () {
              _showRichAlert(context);
            },
            child: Text('Show Rich Alert'),
          ),
        ),
      ),
    );
  }

  void _showRichAlert(BuildContext context) {
    showDialog(
      context: context,
      builder: (BuildContext context) {
        return RichAlertDialog(
          alertTitle: richText(
            "Title",
            style: TextStyle(
              fontSize: 24,
              fontWeight: FontWeight.bold,
              color: Colors.blue,
            ),
          ),
          alertSubtitle: richText(
            "This is a subtitle with some **bold** and *italic* text.",
            style: TextStyle(
              fontSize: 16,
              color: Colors.black,
            ),
          ),
          alertType: RichAlertType.SUCCESS, // 弹窗类型
          actions: [
            TextButton(
              onPressed: () {
                Navigator.of(context).pop();
              },
              child: Text('OK'),
            ),
          ],
        );
      },
    );
  }
}

参数说明

  • alertTitle: 弹窗的标题,使用 richText 函数来定义富文本。
  • alertSubtitle: 弹窗的副标题,同样使用 richText 函数来定义富文本。
  • alertType: 弹窗的类型,可以是 RichAlertType.SUCCESS, RichAlertType.WARNING, RichAlertType.ERROR, RichAlertType.INFO 等。
  • actions: 弹窗底部的操作按钮,通常是一个 TextButtonElevatedButton

自定义样式

你可以通过 richText 函数来定义富文本的样式。richText 函数支持 Markdown 语法,因此你可以在文本中使用 ** 表示加粗,* 表示斜体等。

richText(
  "This is a **bold** and *italic* text.",
  style: TextStyle(
    fontSize: 16,
    color: Colors.black,
  ),
)
回到顶部