Flutter浮动可扩展菜单插件floating_expandable_menu的使用

Flutter浮动可扩展菜单插件floating_expandable_menu的使用

简介

floating_expandable_menu 是一个用于 Flutter 应用程序的可定制浮动和可扩展菜单小部件。该小部件非常适合为您的 Flutter 应用程序添加现代化且交互式的菜单。

特点

  • 浮动菜单按钮始终位于其他小部件之上。
  • 可展开以显示菜单选项。
  • 菜单项完全可自定义。
  • 菜单展开和折叠时具有平滑动画效果。

使用示例

以下是一个完整的示例,展示如何在 Flutter 应用程序中使用 floating_expandable_menu 插件。

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('浮动可扩展菜单示例'),
        ),
        body: Center(
          child: Text('点击右下角的图标以查看浮动可扩展菜单'),
        ),
        floatingActionButton: FloatingExpandableMenu(
          // 定义菜单项
          menuItems: [
            FloatingMenuItem(
              iconData: Icons.add,
              onPressed: () {
                print('添加');
              },
            ),
            FloatingMenuItem(
              iconData: Icons.delete,
              onPressed: () {
                print('删除');
              },
            ),
            FloatingMenuItem(
              iconData: Icons.edit,
              onPressed: () {
                print('编辑');
              },
            ),
          ],
          // 主按钮的图标
          mainButtonIcon: Icons.menu,
          // 主按钮的颜色
          mainButtonColor: Colors.blue,
          // 菜单展开方向
          direction: ExpansionDirection.right,
        ),
      ),
    );
  }
}

代码解释

  1. 导入必要的包:

    import 'package:flutter/material.dart';
    import 'package:floating_expandable_menu/floating_expandable_menu.dart';
    
  2. 创建主应用类 MyApp:

    void main() => runApp(MyApp());
    
  3. 构建 MyApp:

    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          home: Scaffold(
            appBar: AppBar(
              title: Text('浮动可扩展菜单示例'),
            ),
            body: Center(
              child: Text('点击右下角的图标以查看浮动可扩展菜单'),
            ),
            floatingActionButton: FloatingExpandableMenu(
              // 定义菜单项
              menuItems: [
                FloatingMenuItem(
                  iconData: Icons.add,
                  onPressed: () {
                    print('添加');
                  },
                ),
                FloatingMenuItem(
                  iconData: Icons.delete,
                  onPressed: () {
                    print('删除');
                  },
                ),
                FloatingMenuItem(
                  iconData: Icons.edit,
                  onPressed: () {
                    print('编辑');
                  },
                ),
              ],
              // 主按钮的图标
              mainButtonIcon: Icons.menu,
              // 主按钮的颜色
              mainButtonColor: Colors.blue,
              // 菜单展开方向
              direction: ExpansionDirection.right,
            ),
          ),
        );
      }
    }
    

更多关于Flutter浮动可扩展菜单插件floating_expandable_menu的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter浮动可扩展菜单插件floating_expandable_menu的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


floating_expandable_menu 是一个用于 Flutter 的插件,它允许你创建一个浮动的、可扩展的菜单。这个插件非常适合用于需要在应用中快速访问多个操作或选项的场景。

安装

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

dependencies:
  flutter:
    sdk: flutter
  floating_expandable_menu: ^0.1.0  # 请检查最新版本

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

使用示例

下面是一个简单的示例,展示如何使用 floating_expandable_menu 插件创建一个浮动的可扩展菜单。

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Floating Expandable Menu Example'),
        ),
        body: Center(
          child: Text('Press the floating button to expand the menu!'),
        ),
        floatingActionButton: FloatingExpandableMenu(
          children: [
            FloatingActionButton(
              onPressed: () {
                // Action for the first button
                print('Button 1 pressed');
              },
              child: Icon(Icons.add),
              heroTag: null,
            ),
            FloatingActionButton(
              onPressed: () {
                // Action for the second button
                print('Button 2 pressed');
              },
              child: Icon(Icons.edit),
              heroTag: null,
            ),
            FloatingActionButton(
              onPressed: () {
                // Action for the third button
                print('Button 3 pressed');
              },
              child: Icon(Icons.delete),
              heroTag: null,
            ),
          ],
        ),
      ),
    );
  }
}

解释

  1. FloatingExpandableMenu: 这是主部件,它包裹了所有的 FloatingActionButton 子部件。当用户点击主按钮时,子按钮会展开。

  2. children: 这是一个 List<Widget>,包含了你希望在菜单中显示的所有 FloatingActionButton

  3. heroTag: 使用 heroTag: null 来避免多个 FloatingActionButton 之间的冲突。

自定义

你可以通过以下属性来自定义 FloatingExpandableMenu 的行为和外观:

  • angle: 控制子按钮展开的角度。
  • radius: 控制子按钮展开的半径。
  • duration: 控制展开和收起动画的持续时间。
  • curve: 控制动画的曲线。
  • icon: 自定义主按钮的图标。
  • backgroundColor: 自定义主按钮的背景颜色。
FloatingExpandableMenu(
  angle: 90.0,
  radius: 100.0,
  duration: Duration(milliseconds: 500),
  curve: Curves.easeInOut,
  icon: Icon(Icons.menu),
  backgroundColor: Colors.blue,
  children: [
    // Your FloatingActionButton children here
  ],
)
回到顶部