Flutter原生对话框插件native_dialog_plus的使用

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

Flutter原生对话框插件native_dialog_plus的使用

Flutter 的 native_dialog_plus 插件是一个简约的插件,用于显示原生对话框。

描述

Android

Native Dialog Plus 使用每个平台的原生UI来显示警告和确认对话框。

  • 重要提示:由于框架限制,Android最多只能有3个动作,每个NativeDialogPlusActionStyle风格各一个(默认样式、取消和破坏性),列表中动作的顺序不会改变对话框中的位置。

iOS

iOS对动作数量没有限制。如果未传递回调,则按钮将被禁用。

使用方法

Alert 对话框

示例代码

import 'package:native_dialog_plus/native_dialog_plus.dart';

// 显示一个带有两个按钮的Alert对话框
NativeDialogPlus(
    actions: [
        NativeDialogPlusAction(
            text: 'Now',
            style: NativeDialogPlusActionStyle.destructive,
        ),
        NativeDialogPlusAction(
            text: "BZ'H",
            onPressed: () {
                print("Moshiach vibes");
            },
            style: NativeDialogPlusActionStyle.defaultStyle,
        ),
    ],
    title: 'This is a test dialog',
    message: 'Moshiach NOW',
).show();

完整示例Demo

下面是一个完整的Flutter应用示例,展示了如何在应用中使用native_dialog_plus插件来创建和显示对话框。

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

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

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Native Dialog Plus Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'Native Dialog Plus Demo'),
    );
  }
}

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

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            MaterialButton(
              color: Colors.blue,
              onPressed: () {
                // 显示基本对话框
                NativeDialogPlus(
                  actions: [
                    NativeDialogPlusAction(
                      text: 'Now',
                      style: NativeDialogPlusActionStyle.destructive,
                    ),
                    NativeDialogPlusAction(
                      text: "BZ'H",
                      onPressed: () {
                        debugPrint("Moshiach vibes");
                      },
                      style: NativeDialogPlusActionStyle.defaultStyle,
                    ),
                  ],
                  title: 'This is a test dialog',
                  message: 'Moshiach NOW',
                ).show();
              },
              child: const Text('Show basic dialog'),
            ),
            MaterialButton(
              color: Colors.blue,
              onPressed: () {
                // 显示Action Sheet
                NativeDialogPlus(
                  title: 'Moshiach NOW',
                  style: NativeDialogPlusStyle.actionSheet,
                  actions: [
                    NativeDialogPlusAction(
                      text: 'Now',
                      style: NativeDialogPlusActionStyle.cancel,
                    ),
                    NativeDialogPlusAction(
                      text: "BZ'H",
                      onPressed: () {
                        debugPrint("Test");
                      },
                    ),
                  ],
                ).show();
              },
              child: const Text('Show Action sheet'),
            ),
          ],
        ),
      ),
    );
  }
}

通过上述代码,您可以快速上手并在您的Flutter项目中集成native_dialog_plus插件,以实现更丰富的用户交互体验。


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

1 回复

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


当然,以下是如何在Flutter项目中使用native_dialog_plus插件的详细代码示例。native_dialog_plus是一个用于在Flutter应用中显示原生对话框(如警告框、确认框等)的插件。

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  native_dialog_plus: ^2.0.0  # 请检查最新版本号

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

2. 导入插件

在你的Dart文件中(通常是main.dart或其他页面文件),导入native_dialog_plus

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

3. 使用示例

以下是如何使用native_dialog_plus显示不同类型的对话框的示例代码:

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Native Dialog Plus Example'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              ElevatedButton(
                onPressed: _showAlertDialog,
                child: Text('Show Alert Dialog'),
              ),
              SizedBox(height: 20),
              ElevatedButton(
                onPressed: _showConfirmDialog,
                child: Text('Show Confirm Dialog'),
              ),
            ],
          ),
        ),
      ),
    );
  }

  void _showAlertDialog() {
    NativeDialogPlus.alert(context)
      .setTitle("Alert")
      .setMessage("This is an alert dialog!")
      .setPositiveButton(
        title: "OK",
        onPressed: () => print("Positive button clicked!"),
      )
      .show();
  }

  void _showConfirmDialog() {
    NativeDialogPlus.confirm(context)
      .setTitle("Confirm")
      .setMessage("Are you sure you want to proceed?")
      .setPositiveButton(
        title: "Yes",
        onPressed: () => print("Positive button clicked!"),
      )
      .setNegativeButton(
        title: "No",
        onPressed: () => print("Negative button clicked!"),
      )
      .show();
  }
}

代码解释

  1. 添加依赖:在pubspec.yaml中添加native_dialog_plus依赖。
  2. 导入插件:在Dart文件中导入native_dialog_plus
  3. 使用示例
    • 创建了一个简单的Flutter应用,包含一个AppBar和两个按钮。
    • _showAlertDialog函数显示一个带有标题、消息和确认按钮的警告对话框。
    • _showConfirmDialog函数显示一个带有标题、消息、确认按钮和取消按钮的确认对话框。

这些示例展示了如何使用native_dialog_plus插件在Flutter应用中显示原生样式的对话框。你可以根据需要进一步自定义对话框的样式和行为。

回到顶部