Flutter山形菜单插件mountain_menu的使用

Flutter山形菜单插件mountain_menu的使用

山形菜单简介

The ITcians 设计的山形菜单是一款专为你的应用程序打造的弯曲菜单。你可以自定义菜单的动画和主题。

示例代码

基本使用

以下是一个简单的示例,展示如何在Flutter应用中使用MountainMenu插件:

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

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

  [@override](/user/override)
  State<MenuDemo> createState() => _MenuDemoState();
}

class _MenuDemoState extends State<MenuDemo> {
  // 菜单项列表
  List<String> menus = ["SETTINGS", "SEARCH", "NOTIFICATIONS", "HOME", "PROFILE"];
  
  // 当前选中的菜单项索引
  int selectedIndex = 0;

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          children: [
            // 显示一个图像
            Image.network(
              "https://avatars.githubusercontent.com/u/93488670?s=400&u=af911b0e99e78a599f08f47f1e3152700b869f6b&v=4"
            ),
            // 显示文本
            const Text(
              "The ITcians",
              style: TextStyle(
                color: Colors.black,
                fontFamily: "Cursive",
                fontWeight: FontWeight.bold,
                fontSize: 40
              )
            ),
            // 显示当前选中的菜单项
            Text(
              menus[selectedIndex],
              style: const TextStyle(
                color: Color(0xff9264EB),
                fontWeight: FontWeight.bold,
                fontSize: 30
              )
            ),
          ],
        ),
      ),
      // 添加底部山形菜单
      bottomNavigationBar: MountainMenu(
        color: const Color(0xff9264EB), // 山形菜单的颜色
        menuIcon: Icons.menu, // 主按钮图标
        mainButtonElevation: 0, // 主按钮阴影
        mini: false, // 是否缩小菜单
        curve: Curves.bounceOut, // 动画曲线
        buttonBackgroundColor: Colors.white, // 菜单按钮背景颜色
        onChange: (val) async { // 菜单变化监听器
          setState(() {
            selectedIndex = val;
          });
        },
        menus: const [
          Icon(Icons.settings, color: Color(0xff9264EB)), // 设置图标
          Icon(Icons.search, color: Color(0xff9264EB)), // 搜索图标
          Icon(Icons.chat_bubble, color: Color(0xff9264EB)), // 通知图标
          Icon(Icons.home, color: Color(0xff9264EB)), // 首页图标
          Icon(Icons.person, color: Color(0xff9264EB)), // 个人资料图标
        ],
      ),
    );
  }
}

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

1 回复

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


mountain_menu 是一个用于 Flutter 的山形菜单插件,它允许你创建一个具有山形背景的菜单,类似于一些应用中的底部导航栏。这个插件通常用于创建具有独特视觉效果的菜单,增强用户体验。

安装

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

dependencies:
  flutter:
    sdk: flutter
  mountain_menu: ^0.0.1 # 请检查最新版本

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

使用

以下是一个简单的示例,展示了如何使用 mountain_menu 插件创建一个山形菜单。

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Mountain Menu Example'),
        ),
        body: Center(
          child: Text('Hello, Mountain Menu!'),
        ),
        bottomNavigationBar: MountainMenu(
          items: [
            MountainMenuItem(
              icon: Icons.home,
              label: 'Home',
              onTap: () {
                print('Home tapped');
              },
            ),
            MountainMenuItem(
              icon: Icons.search,
              label: 'Search',
              onTap: () {
                print('Search tapped');
              },
            ),
            MountainMenuItem(
              icon: Icons.settings,
              label: 'Settings',
              onTap: () {
                print('Settings tapped');
              },
            ),
          ],
        ),
      ),
    );
  }
}

参数说明

  • items: 一个 MountainMenuItem 列表,每个 MountainMenuItem 代表菜单中的一个选项。
    • icon: 菜单项的图标。
    • label: 菜单项的标签。
    • onTap: 当菜单项被点击时触发的回调函数。

自定义

你可以通过传递不同的参数来进一步自定义 MountainMenu 的外观和行为。例如,你可以调整菜单的背景颜色、图标颜色、标签样式等。

MountainMenu(
  backgroundColor: Colors.blue,
  iconColor: Colors.white,
  labelStyle: TextStyle(color: Colors.white),
  items: [
    // 菜单项
  ],
)
回到顶部