Flutter弹窗提示插件bootstrap_alert的使用

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

Flutter弹窗提示插件bootstrap_alert的使用

bootstrap_alert 插件可以帮助开发者在Flutter应用中显示各种类型的提示框,这些提示框的设计灵感来源于Bootstrap。以下是关于如何使用该插件的详细介绍和一个完整的示例demo。

1. 开始使用

首先,在 pubspec.yaml 文件中添加 bootstrap_alert 依赖:

dependencies:
    bootstrap_alert: latest

2. 使用方法

2.1 默认提示框

这是最简单的提示框,没有任何额外的配置。你可以通过设置 status 来改变提示框的样式(如 primarysuccesswarningdanger 等)。

BootstrapAlert(
    visible: true,  // 控制提示框是否可见
    status: AlertStatus.primary,  // 设置提示框的状态,这里是primary
    text: 'Default Primary Alert',  // 提示框的内容
),

Default Alerts

2.2 带图标的警告提示框

你可以在提示框中添加图标,以增强视觉效果。这里我们使用 leadingIcon 属性来添加一个警告图标。

BootstrapAlert(
    visible: true,
    status: AlertStatus.warning,  // 设置为警告状态
    leadingIcon: AlertIcons.warning,  // 添加警告图标
    text: 'Warning Alert with Icon',  // 提示框的内容
),

Warning with Icon Alert

2.3 可关闭的成功提示框

你可以通过设置 isDismissible 属性为 true,使用户可以通过点击关闭按钮来关闭提示框。

BootstrapAlert(
    visible: true,
    status: AlertStatus.success,  // 设置为成功状态
    leadingIcon: AlertIcons.success,  // 添加成功图标
    isDismissible: true,  // 允许用户关闭提示框
    text: 'Success Alert with Icon',  // 提示框的内容
),

Success with Icon and Dismiss Button Alert

2.4 自动关闭的危险提示框

你可以通过设置 autoCloseDuration 属性,让提示框在指定的时间后自动关闭。同时,还可以结合 isDismissible 属性,允许用户手动关闭提示框。

BootstrapAlert(
    visible: true,
    status: AlertStatus.danger,  // 设置为危险状态
    leadingIcon: AlertIcons.warning,  // 添加警告图标
    isDismissible: true,  // 允许用户关闭提示框
    autoCloseDuration: Duration(seconds: 1),  // 1秒后自动关闭
    text: 'Danger Alert with Icon, Dismiss Button and Auto Close',  // 提示框的内容
),

Danger with Icon, Dismiss Button and Auto Close Alert

2.5 带圆角的提示框

你可以通过设置 borderRadius 属性,为提示框添加圆角效果。

BootstrapAlert(
    visible: true,
    text: 'Danger Alert with Icon, Dismiss Button and Auto Close',  // 提示框的内容
    borderRadius: BorderRadius.only(
        topLeft: Radius.circular(36),  // 左上角圆角
        bottomRight: Radius.circular(36),  // 右下角圆角
    ),
),

Primary with BorderRadius Alert

2.6 带内边距的提示框

你可以通过设置 padding 属性,为提示框添加内边距,调整内容与边框之间的间距。

BootstrapAlert(
    visible: true,
    text: 'Danger Alert with Icon, Dismiss Button and Auto Close',  // 提示框的内容
    padding: EdgeInsets.all(4),  // 设置内边距为4
),

Primary with Padding Alert

3. 完整示例Demo

以下是一个完整的示例代码,展示了如何在一个Flutter应用中使用 bootstrap_alert 插件来显示不同类型的提示框。

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Bootstrap Alert Demo'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              ElevatedButton(
                onPressed: () {
                  _showAlert(context, AlertStatus.primary, 'Default Primary Alert');
                },
                child: Text('Show Default Alert'),
              ),
              SizedBox(height: 10),
              ElevatedButton(
                onPressed: () {
                  _showAlert(context, AlertStatus.warning, 'Warning Alert with Icon', leadingIcon: AlertIcons.warning);
                },
                child: Text('Show Warning Alert with Icon'),
              ),
              SizedBox(height: 10),
              ElevatedButton(
                onPressed: () {
                  _showAlert(context, AlertStatus.success, 'Success Alert with Icon', leadingIcon: AlertIcons.success, isDismissible: true);
                },
                child: Text('Show Success Alert with Dismiss Button'),
              ),
              SizedBox(height: 10),
              ElevatedButton(
                onPressed: () {
                  _showAlert(context, AlertStatus.danger, 'Danger Alert with Icon, Dismiss Button and Auto Close', leadingIcon: AlertIcons.warning, isDismissible: true, autoCloseDuration: Duration(seconds: 1));
                },
                child: Text('Show Danger Alert with Auto Close'),
              ),
              SizedBox(height: 10),
              ElevatedButton(
                onPressed: () {
                  _showAlert(context, AlertStatus.primary, 'Danger Alert with Icon, Dismiss Button and Auto Close', borderRadius: BorderRadius.only(topLeft: Radius.circular(36), bottomRight: Radius.circular(36)));
                },
                child: Text('Show Alert with BorderRadius'),
              ),
              SizedBox(height: 10),
              ElevatedButton(
                onPressed: () {
                  _showAlert(context, AlertStatus.primary, 'Danger Alert with Icon, Dismiss Button and Auto Close', padding: EdgeInsets.all(4));
                },
                child: Text('Show Alert with Padding'),
              ),
            ],
          ),
        ),
      ),
    );
  }

  void _showAlert(BuildContext context, AlertStatus status, String text, {AlertIcons? leadingIcon, bool? isDismissible, Duration? autoCloseDuration, BorderRadius? borderRadius, EdgeInsets? padding}) {
    showDialog(
      context: context,
      builder: (BuildContext context) {
        return AlertDialog(
          content: BootstrapAlert(
            visible: true,
            status: status,
            leadingIcon: leadingIcon,
            isDismissible: isDismissible ?? false,
            autoCloseDuration: autoCloseDuration,
            borderRadius: borderRadius,
            padding: padding,
            text: text,
          ),
        );
      },
    );
  }
}

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

1 回复

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


当然,以下是如何在Flutter项目中使用bootstrap_alert插件来创建弹窗提示的示例代码。这个插件允许你以Bootstrap风格的方式在Flutter应用中显示弹窗提示。

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

dependencies:
  flutter:
    sdk: flutter
  bootstrap_alert: ^latest_version  # 请替换为实际的最新版本号

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

接下来,你可以在你的Flutter应用中使用bootstrap_alert来显示弹窗提示。以下是一个简单的示例:

import 'package:flutter/material.dart';
import 'package:bootstrap_alert/bootstrap_alert.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> {

  void showAlert() {
    showDialog(
      context: context,
      builder: (BuildContext context) {
        return AlertDialog(
          title: Text('Bootstrap Alert Example'),
          content: SingleChildScrollView(
            child: ListBody(
              children: <Widget>[
                Text('This is a Bootstrap styled alert dialog in Flutter.'),
              ],
            ),
          ),
          actions: <Widget>[
            BootstrapAlertButton(
              bootstrapStyle: BootstrapStyle.success,
              child: Text('OK'),
              onPressed: () {
                Navigator.of(context).pop();
              },
            ),
          ],
        );
      },
    );

    // Alternatively, you can use BootstrapAlert widget directly for more customization
    // BootstrapAlert.show(
    //   context: context,
    //   title: 'Bootstrap Alert Example',
    //   message: 'This is a Bootstrap styled alert dialog in Flutter.',
    //   bootstrapStyle: BootstrapStyle.success,
    //   onConfirm: () {
    //     Navigator.of(context).pop();
    //   },
    // );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Demo Home Page'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'You have pushed the button this many times:',
            ),
            ElevatedButton(
              onPressed: showAlert,
              child: Text('Show Alert'),
            ),
          ],
        ),
      ),
    );
  }
}

在这个示例中,我们创建了一个简单的Flutter应用,其中包含一个按钮。点击按钮时,会弹出一个对话框(Dialog),这个对话框使用了AlertDialog并添加了一个自定义的BootstrapAlertButton(虽然bootstrap_alert插件可能没有直接提供BootstrapAlertButton,但你可以根据Bootstrap风格自定义按钮样式)。

请注意,bootstrap_alert插件的API可能会有所不同,具体取决于其版本和实现。上面的代码示例假设了一个可能的用法,但你可能需要查看bootstrap_alert的官方文档或源代码以获取确切的用法和可用的样式。

如果bootstrap_alert插件确实提供了更直接的BootstrapAlert小部件,你可以使用注释中的替代方法,直接调用BootstrapAlert.show()来显示弹窗。

务必确保你使用的bootstrap_alert版本与你查看的文档或示例代码相匹配。

回到顶部