Flutter对话框插件z_dialog的使用

Flutter对话框插件z_dialog的使用

z_dialog

ZDialog

pub package

z_dialog 是一个轻量级的对话框插件。

示例展示

以下是 z_dialog 的一些示例效果:


使用方法

示例代码

在以下示例中,我们将演示如何使用 z_dialog 插件来创建不同类型的对话框。

// 导入必要的库
import 'package:flutter/material.dart';
import 'package:z_dialog/z_dialog.dart';

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

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const HomePage(),
    );
  }
}

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

  [@override](/user/override)
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      body: Container(
        padding: const EdgeInsets.all(10.0),
        child: ListView(
          children: [
            // 示例1:简单的AlertDialog
            const SizedBox(height: 10),
            ZButton(
              isDark: true,
              text: 'AlertDialog',
              onPressed: () async {
                ZDialog.showAlert(context,
                    title: 'Flutter',
                    content:
                        'Flutter is Google UI toolkit for building beautiful, natively compiled applications for mobile, web, desktop, and embedded devices from a single codebase.',
                    actions: [
                      ZButton(
                        isDark: true,
                        text: '确定',
                        onPressed: () {
                          Navigator.of(context).pop();
                        },
                      ),
                      ZButton(
                        isDark: false,
                        text: '取消',
                        onPressed: () {
                          Navigator.of(context).pop();
                        },
                      ),
                    ]);
              },
            ),

            // 示例2:底部弹出选择框
            const SizedBox(height: 10),
            ZButton(
              isDark: true,
              text: 'BottomDialog',
              onPressed: () async {
                ZDialog.showBottomDialog(
                  context,
                  circular: 12,
                  options: ['Ring', 'Koa', 'Flutter'],
                  onClick: (i, value) {
                    Navigator.of(context).pop();
                  },
                );
              },
            ),

            // 示例3:自定义对话框
            ZButton(
              isDark: true,
              text: 'CustomWidget',
              onPressed: () async {
                ZDialog.showCustomDialog(context,
                    title: 'Custom',
                    customWidget: Column(
                      children: [
                        Padding(
                          padding: const EdgeInsets.all(18.0),
                          child: Image.network(
                              'https://flutter.cn/asset/flutter-hero-laptop2.png'),
                        ),
                        Text('Custom Widget')
                      ],
                    ),
                    actions: [
                      ZButton(
                        isDark: true,
                        text: 'Ok',
                        onPressed: () {
                          Navigator.of(context).pop();
                        },
                      ),
                      TextButton(
                        onPressed: () {
                          Navigator.of(context).pop();
                        },
                        child: Padding(
                          padding: const EdgeInsets.only(left: 20, right: 20),
                          child: Text(
                            'Cancel',
                            style: TextStyle(color: Colors.grey),
                          ),
                        ),
                      ),
                    ]);
              },
            ),
          ],
        ),
      ),
    );
  }
}

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

1 回复

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


z_dialog 是一个用于 Flutter 的对话框插件,它提供了多种类型的对话框,如普通对话框、确认对话框、输入对话框、底部对话框等。使用 z_dialog 可以方便地创建和管理对话框,提升用户体验。

安装

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

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

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

基本用法

1. 普通对话框

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

void showBasicDialog(BuildContext context) {
  ZDialog.show(
    context,
    title: '提示',
    content: '这是一个普通对话框',
    confirmText: '确定',
    onConfirm: () {
      print('确定按钮被点击');
    },
  );
}

2. 确认对话框

void showConfirmDialog(BuildContext context) {
  ZDialog.confirm(
    context,
    title: '确认',
    content: '你确定要执行此操作吗?',
    confirmText: '确定',
    cancelText: '取消',
    onConfirm: () {
      print('确定按钮被点击');
    },
    onCancel: () {
      print('取消按钮被点击');
    },
  );
}

3. 输入对话框

void showInputDialog(BuildContext context) {
  ZDialog.input(
    context,
    title: '输入',
    hintText: '请输入内容',
    confirmText: '确定',
    cancelText: '取消',
    onConfirm: (String value) {
      print('输入的内容: $value');
    },
    onCancel: () {
      print('取消按钮被点击');
    },
  );
}

4. 底部对话框

void showBottomDialog(BuildContext context) {
  ZDialog.bottom(
    context,
    title: '底部对话框',
    items: [
      ZDialogItem('选项1', onTap: () {
        print('选项1被点击');
      }),
      ZDialogItem('选项2', onTap: () {
        print('选项2被点击');
      }),
    ],
  );
}

自定义对话框

z_dialog 也支持自定义对话框内容。你可以通过 ZDialog.custom 方法来创建自定义对话框。

void showCustomDialog(BuildContext context) {
  ZDialog.custom(
    context,
    child: Container(
      padding: EdgeInsets.all(20),
      child: Column(
        mainAxisSize: MainAxisSize.min,
        children: [
          Text('自定义对话框内容'),
          ElevatedButton(
            onPressed: () {
              Navigator.of(context).pop();
            },
            child: Text('关闭'),
          ),
        ],
      ),
    ),
  );
}
回到顶部