An easy to use side menu in flutter and can used for navigations

Overview

Easy Sidemenu

logo
GitHub Pub Version GitHub repo size

Easy sidemenu is An easy to use side menu (bar) for flutter that you can use for navigations in your application.

Sidemenu is a menu that is usually located on the left or right of the page and can used for navigations or other things. Sidemenu is similar to bottom navigation bar but in the side of screen and usually used for larger screens.

Screenshots

Open Compact
Open Compact
Auto
Auto

Demo

You can see web demo here: https://jamalianpour.github.io/easy_sidemenu

Usage

1. add dependencies into you project pubspec.yaml file
dependencies:
  easy_sidemenu: ^0.1.1+1

Run flutter packages get in the root directory of your app.

2. import easy sidemenu lib
import 'package:easy_sidemenu/easy_sidemenu.dart';

Now you can use SideMenu as a widget in your code.

3. use SideMenu

At first you should defind a list of item that will displayed on SideMenu:

List<SideMenuItem> items = [
  SideMenuItem(
    // Priority of item to show on SideMenu, lower value is displayed at the top
    priority: 0,
    title: 'Dashboard',
    onTap: () => page.jumpToPage(0),
    icon: Icons.home,
  ),
  SideMenuItem(
    priority: 1,
    title: 'Settings',
    onTap: () => page.jumpToPage(1),
    icon: Icons.settings,
  ),
  SideMenuItem(
    priority: 2,
    title: 'Exit',
    onTap: () {},
    icon: Icons.exit_to_app,
  ),
];
priority rule:
  • Priority should start from 0
  • Priority value should be unique

After that you need to warp your main page to a row and then add SideMenu as first child of that, like below:

PageController page = PageController();
Row(
  mainAxisAlignment: MainAxisAlignment.start,
  children: [
    SideMenu(
      // page controller to manage a PageView
      controller: page,
      // will shows on top of all items, it can be a logo or a Title text
      title: Image.asset('assets/images/easy_sidemenu.png'),
      // will show on bottom of SideMenu when displayMode was SideMenuDisplayMode.open
      footer: Text('demo'),
      // List of SideMenuItem to show them on SideMenu
      items: items,
    ),
    Expanded(
      child: PageView(
        controller: page,
        children: [
          Container(
            child: Center(
              child: Text('Dashboard'),
            ),
          ),
          Container(
            child: Center(
              child: Text('Settings'),
            ),
          ),
        ],
      ),
    ),
  ],
),

Style

you can change style of side menu with SideMenuStyle :

style: SideMenuStyle(
  displayMode: SideMenuDisplayMode.auto,
  openSideMenuWidth: 200,
  compactSideMenuWidth: 40,
  hoverColor: Colors.blue[100],
  selectedColor: Colors.lightBlue,
  selectedIconColor: Colors.white,
  unselectedIconColor: Colors.black54,
  backgroundColor: Colors.grey
  selectedTitleTextStyle: TextStyle(color: Colors.white),
  unselectedTitleTextStyle: TextStyle(color: Colors.black54),
  iconSize: 20,
),

Style Props

props types description
displayMode SideMenuDisplayMode? SideMenuDisplayMode.auto, SideMenuDisplayMode.open, SideMenuDisplayMode.compact
openSideMenuWidth double? Width of SideMenu when displayMode was SideMenuDisplayMode.open
compactSideMenuWidth double? Width of SideMenu when displayMode was SideMenuDisplayMode.compact
hoverColor Color? Color of SideMenuItem when mouse hover on that
selectedColor Color? Background color of SideMenuItem when item is selected
selectedIconColor Color? Color of icon when item is selected
unselectedIconColor Color? Color of icon when item is unselected
backgroundColor Color? Background color of SideMenu
selectedTitleTextStyle TextStyle? Style of title text when item is selected
unselectedTitleTextStyle TextStyle? Style of title text when item is unselected
iconSize double? Size of icon on SideMenuItem

Feel free to fork this repository and send pull request 🏁 👍

Comments
  • This ValueListenableBuilder<SideMenuDisplayMode> widget cannot be marked as needing to build because the framework is locked.

    This ValueListenableBuilder widget cannot be marked as needing to build because the framework is locked.

    I'm trying to go "home" to the widget with SideMenu, navigating from a child page of a page in the SideMenu: Navigator.pushNamedAndRemoveUntil(context, '/', (route) => false);

    Causes this exception:

    ======== Exception caught by foundation library ====================================================
    The following assertion was thrown while dispatching notifications for DisplayModeNotifier:
    setState() or markNeedsBuild() called when widget tree was locked.
    
    This ValueListenableBuilder<SideMenuDisplayMode> widget cannot be marked as needing to build because the framework is locked.
    The widget on which setState() or markNeedsBuild() was called was: ValueListenableBuilder<SideMenuDisplayMode>
      state: _ValueListenableBuilderState<SideMenuDisplayMode>#1d0da
    When the exception was thrown, this was the stack: 
    dart:sdk_internal 5241:11                                                 throw_
    packages/flutter/src/widgets/title.dart.lib.js 25387:21                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 25390:26                   markNeedsBuild
    packages/flutter/src/widgets/title.dart.lib.js 12911:43                   setState
    packages/flutter/src/widgets/value_listenable_builder.dart.lib.js 145:14  [_valueChanged]
    packages/flutter/src/foundation/change_notifier.dart.lib.js 150:31        notifyListeners
    packages/easy_sidemenu/src/global/global.dart.lib.js 80:12                change
    packages/easy_sidemenu/src/side_menu.dart.lib.js 451:38                   dispose
    packages/flutter/src/widgets/title.dart.lib.js 62009:18                   unmount
    packages/flutter/src/widgets/title.dart.lib.js 61132:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 30026:11                   visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 30026:11                   visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 39615:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 39615:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 39615:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 39615:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 39615:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 30026:11                   visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 39615:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 39615:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 39615:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 39615:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 39615:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 39615:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 39615:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 39615:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    packages/flutter/src/widgets/title.dart.lib.js 61130:27                   <fn>
    packages/flutter/src/widgets/title.dart.lib.js 29581:9                    visitChildren
    packages/flutter/src/widgets/title.dart.lib.js 61128:15                   [_unmount]
    dart:sdk_internal 23974:11                                                forEach
    packages/flutter/src/widgets/title.dart.lib.js 61144:45                   [_unmountAll]
    packages/flutter/src/widgets/title.dart.lib.js 61300:9                    lockState
    packages/flutter/src/widgets/title.dart.lib.js 61592:14                   finalizeTree
    packages/flutter/src/widgets/title.dart.lib.js 64199:41                   drawFrame
    packages/flutter/src/rendering/view.dart.lib.js 712:12                    [_handlePersistentFrameCallback]
    packages/flutter/src/scheduler/binding.dart.lib.js 782:9                  [_invokeFrameCallback]
    packages/flutter/src/scheduler/binding.dart.lib.js 749:37                 handleDrawFrame
    packages/flutter/src/scheduler/binding.dart.lib.js 696:12                 [_handleDrawFrame]
    dart:sdk_internal 196986:7                                                invoke
    dart:sdk_internal 172327:15                                               invokeOnDrawFrame
    dart:sdk_internal 196709:57                                               <fn>
    dart:sdk_internal 5438:16                                                 _checkAndCall
    dart:sdk_internal 5443:17                                                 dcall
    dart:sdk_internal 62137:21                                                ret
    The DisplayModeNotifier sending notification was: DisplayModeNotifier#9973a(SideMenuDisplayMode.auto)
    ====================================================================================================
    
    bug 
    opened by kylegraycar 6
  • Allow custom icons for SideMenuItem

    Allow custom icons for SideMenuItem

    Hi. I was building a complex design for a client a few days ago, and I came across some functionality that I couldn't implement with the in-built Flutter NavigationRail so I searched until I stumbled upon this awesome package. It's worked very well to meet all my design requirements so far but now I've hit a roadblock.

    Basically, I need to use SVG images for some icons as there are no equivalent icons available, so I need to use a custom widget but the icon property of SideMenuItem only accepts an Icon.

    I'd be happy to make a PR to fix this if you prefer.

    opened by daoxve 5
  • Custom icons

    Custom icons

    This project looks great! I was just wondering if you are planning on adding an option to support custom icons (i.e. add a Widget instead of IconData). That would allow the user to use, for instance, badges for icons instead.

    opened by mt633 4
  • Feature that allows us to set menu item more customizable

    Feature that allows us to set menu item more customizable

    Hey everyone, me again! Soooo, I found myself in a position where i needed to set custom spacings and height for the menu items. So I added this feature so everyone can do so. Hope you'll like it. Have a great day everyone!

    Signed by Branislav Mateáš.

    opened by BranislavMateas 3
  •  Add optional parameters to side_menu.dart

    Add optional parameters to side_menu.dart

    Hello, friend. I used this plugin today and it worked very well to help me save some time. But I found that there are times when the menu bar does not need icons or text,so Add optional parameters to side_menu.dart,I have submitted some changes and hope you can merge it.

    opened by JeffersonHuang 2
  • [FEATURE] Seeing itemName in tooltip when hovering over the item

    [FEATURE] Seeing itemName in tooltip when hovering over the item

    Hello everyone. New feature proposal here.

    Sometimes icons don't tell enough, do they? So I thought when in compact mode, I could turn this on and see itemName in tooltip when hovering over the menuItem. So, if you could code review and merge, that'd be great. See ya!

    Signed by Branislav Mateáš.

    opened by BranislavMateas 2
  • Custom collapse breakpoint feature

    Custom collapse breakpoint feature

    Hello everyone! So basically, I was using your package in my project, but I ran into this problem so I thought and told myself that it would be great to have the ability to set the custom breakpoint, when will our menu collapse. And so, I delivered. Hope you like it (and merge it 😁).

    Signed by Branislav Mateáš.

    opened by BranislavMateas 2
  • Toggle Button Icon Position Header and Footer

    Toggle Button Icon Position Header and Footer

    Would it be possible to have a flag that lets you move the toggle button to the bottom of the side bar instead of the top?

    Also if you can change the icon as well

    right now it sits over the first element of the side menu when in open mode, would be a nice feature Untitled

    opened by Cratis1831 2
  • Is it possible to add listener when SideMenuDisplayMode changes

    Is it possible to add listener when SideMenuDisplayMode changes

    Hi,

    I want to know if its possible to add listener to the SideMenu that triggers when the SideMenuDisplayMode changes.

    F.E. I want to change the footer widget when the SideMenu goes from open to compact

    Thanks in advance.

    Kind regards, Jordan de Vogelaere

    opened by jordandevogelaere 2
  • Refactor based on `flutter_lints`

    Refactor based on `flutter_lints`

    Hi amazing developer,

    This library is already a great completion, but I have noticed that some of the coding does not follow Dart or Flutter standards because it does not use flutter_lints.

    Therefore, I have made the following fixes.

    • Added flutter_lints to pubspec.yaml
    • Added analysis_options.yaml
    • Fixed some lines based on flutter_lints suggestions (Not destructive)
    • Renamed files based on flutter_lints suggestions (Not destructive)

    Thank you.

    opened by myConsciousness 2
  • [FEATURE] Added custom widget for titleCompact and footerCompact

    [FEATURE] Added custom widget for titleCompact and footerCompact

    Hey!

    So playing with this package, I came to this problem, when I wanted to render different widgets for footer and title depending on the displayMode. I tried using providers, however, to make it work properly I needed to add addPostFrameCallback, which impacted performance (by rendering widgets late - I couldn't render it faster, as I can't call setState during the build phase), so I decided to make a new feature, that would solve this problem in a non-robust way - with adding titleCompact and footerCompact, which if not filled will not affect rendering of the footer/title. Hope you like it! (and merge it 😁)

    Signed by Branislav Mateáš.

    opened by BranislavMateas 1
  • Exception when using 2 side menues

    Exception when using 2 side menues

    Can I use this widget twice in my application? One to the right and one to the left side? It works fine 1 time but when I put two of them I get this exception:

    built during the build phase only if one of its ancestors is currently building. This exception is
    allowed because the framework builds parent widgets before children, which means a dirty descendant
    will always be built. Otherwise, the framework might not visit this widget during this build phase.
    The widget on which setState() or markNeedsBuild() was called was:
      ValueListenableBuilder<SideMenuDisplayMode>
    The widget which was currently being built when the offending call was made was:
      SideMenu
    
    opened by gepopa10 0
  • Error when trying to use builder instead of icon and title.

    Error when trying to use builder instead of icon and title.

    When I try to use the builder instead of the icon & title I get following error:

    Exception has occurred. _AssertionError ('package:easy_sidemenu/src/side_menu_item.dart': Failed assertion: line 25 pos 16: 'title != null || icon != null': Title and icon should not be empty at the same time)

    You wrote on pub.dev/packages/easy_sidemenu

    Instead of title and icon in SideMenuItem can use builder to create your customize items: image

    MyCode: image

    bug 
    opened by felixkriechbaum 1
  • Sidebar doesn't show on initial route, but on homeroute.

    Sidebar doesn't show on initial route, but on homeroute.

    I am using MaterialApp for my flutter web project and for some reason the sidebar is not being rendered at all when the widget is set as an initial route, but it works correctly when it is set as the home route.

    MaterialApp(
                    title: 'project',
               
                    onGenerateRoute: generateRoutes,
                  
                    initialRoute: YRoutes.WebHome,
                    home: WebHome());
    

    YRoutes.WebHome points to Webhome()`

    MaterialPageRoute(
              settings: settings, builder: (BuildContext context) => WebHome())
    

    curious why this might be the case.

    opened by anovis 2
  • side menu not showing after logout.

    side menu not showing after logout.

    side menu not showing after logout and then login again, but when I restart the app it shows correctly but then not navigating between different pages. I there is something not disposing and build only on app startup. it should be built on page startup like when build method called or something like that

    bug 
    opened by Ahtsham0715 9
  • SideMenu doesn't consistently display on navigation

    SideMenu doesn't consistently display on navigation

    When I use

    onPressed: () async {
                              Navigator.pushNamedAndRemoveUntil(
                                  context, '/', (route) => false);
                            },
    

    The SideMenu sometimes won't display. No errors are shown in the console. I can't determine what the criteria is for why or why not the SideMenu will show. When the SideMenu doesn't display, refreshing the page will then display it.

    This could be related to #29

    opened by kylegraycar 6
Releases(0.4.0)
  • 0.4.0(Sep 16, 2022)

    What's Changed

    • fix unnecessary null checks in flutter 3.0.0 and above by @gnassro in https://github.com/Jamalianpour/easy_sidemenu/pull/11
    • Added displayModeToggleDuration to SideMenu widget by @j3su5cr1st in https://github.com/Jamalianpour/easy_sidemenu/pull/13
    • fix delete menu from widget tree by @gudaja in https://github.com/Jamalianpour/easy_sidemenu/pull/15
    • Custom collapse breakpoint feature by @BranislavMateas in https://github.com/Jamalianpour/easy_sidemenu/pull/17
    • Feature that allows us to set menu item more customizable by @BranislavMateas in https://github.com/Jamalianpour/easy_sidemenu/pull/18
    • [BUG-FIX] Uneven spacing when in compact displayMode by @BranislavMateas in https://github.com/Jamalianpour/easy_sidemenu/pull/19
    • [FEATURE] Seeing itemName in tooltip when hovering over the item by @BranislavMateas in https://github.com/Jamalianpour/easy_sidemenu/pull/20
    • Add optional parameters to side_menu.dart by @JeffersonHuang in https://github.com/Jamalianpour/easy_sidemenu/pull/24
    • fix issue SideMenu doesn't show when navigation back and forth by @HasanElHefnawy in https://github.com/Jamalianpour/easy_sidemenu/pull/27

    New Contributors

    • @gnassro made their first contribution in https://github.com/Jamalianpour/easy_sidemenu/pull/11
    • @j3su5cr1st made their first contribution in https://github.com/Jamalianpour/easy_sidemenu/pull/13
    • @gudaja made their first contribution in https://github.com/Jamalianpour/easy_sidemenu/pull/15
    • @BranislavMateas made their first contribution in https://github.com/Jamalianpour/easy_sidemenu/pull/17
    • @JeffersonHuang made their first contribution in https://github.com/Jamalianpour/easy_sidemenu/pull/24
    • @HasanElHefnawy made their first contribution in https://github.com/Jamalianpour/easy_sidemenu/pull/27

    Full Changelog: https://github.com/Jamalianpour/easy_sidemenu/compare/0.3.0...0.4.0

    Source code(tar.gz)
    Source code(zip)
  • 0.3.0(May 26, 2022)

    What's Changed

    • Add listener to SideMenuDisplayMode changed

    • Add toggle button to open and compact sidemenu

    • Refactor based on flutter_lints by @myConsciousness in https://github.com/Jamalianpour/easy_sidemenu/pull/8

    Full Changelog: https://github.com/Jamalianpour/easy_sidemenu/compare/0.2.0...0.3.0

    Source code(tar.gz)
    Source code(zip)
  • 0.2.0(Mar 14, 2022)

  • 0.1.1+1(Aug 22, 2021)

This is a repository for Flutter Focused Menu, an easy to implement package for adding Focused Long Press Menu to Flutter Applications

Focused Menu This is an easy to implement package for adding Focused Long Press Menu to Flutter Applications Current Features Add Focused Menu to Any

Paras Jain 160 Dec 26, 2022
A Side Menu plugin for flutter and compatible with liquid ui for flutter

Liquid Shrink Side Menu A Side Menu plugin for flutter and compatible with liquid ui Side Menu Types There are 8 configuration of Liquid shrink side m

Raj Singh 18 Nov 24, 2022
Flutter drawer (dynamic ready side menu)

Flutter side menu (Drawer) Getting Started Use KFDrawer widget as Scaffold's body with items property (List<KFDrawerItem>) you should define onPressed

null 213 Dec 5, 2022
A Flutter package with custom implementation of the Side Menu (Drawer)

Flutter Awesome Drawer Bar A Flutter package with custom implementation of the Side Menu (Drawer) Getting Started To start using this package, add awe

Appcheap 4 Nov 13, 2022
Adds a side menu in all screens with debug information

Adds a side menu in all screens with debug information. You can decide which information to show and create new modules to include more information.

Sergi Martínez 27 Oct 7, 2022
Arissettingsmenuexm - Settings Menu with different choices by clicking on a Popup Menu Button in Flutter

Flutter Tutorial - Settings Menu & AppBar Dropdown Menu Show a Flutter Settings

Behruz Hurramov 1 Jan 9, 2022
Flutter-pop-up-menu - Pop up Menu - Mobile Devices Programming

Pop Up Menu App A flutter demo app with a pop up menu button Developer Alexander Sosa (https://www.linkedin.com/in/alexander-sosa-asillanes/) Technolo

Alexander Sosa 0 Jan 3, 2022
Flutter plugin to display a popup menu button widget with handsome design and easy to use.

menu_button Flutter widget to display a popup menu button very simply and easily customizable. Resources Documentation Pub Package GitHub Repository I

Hugo EXTRAT 63 Sep 27, 2022
A fancy easy to use Folding Menu for Flutter Applications

Folding Menu This is an easy to use package for adding Folding Menu to your Flutter Applications Demo Usage To Use, simply add Folding Menu to your St

Paras Jain 12 Nov 26, 2022
A TabBarController that is easy to use for flutter developers. 🥰 It supports various styles of page navigation, and you can also use it to customize your favorite styles. 🍻🍻

easy_tab_controller A user-friendly TabBarController widget for flutter developer. Getting Started This project is a starting point for a Flutter plug

圆号本昊 3 May 26, 2022
An animated FAB menu with 2 FAB descendants written in Dart to be used with Flutter.

2itemAnimatedFabMenu | In Progress. An easy implementation of animated FAB menu with 2 FAB descendants using AnimatedAlign widget. Usage Case 1: Scree

Heshanka 5 Oct 28, 2022
Use CMP Crew, Create a room, invite your friends to join, and let them add their orders to the shared menu!

Tired of collecting your friends’ orders at restaurants? Lost track of how many of you want tea? Don’t worry we got you covered! Use CMP Crew, Create a room, invite your friends to join, and let them add their orders to the shared menu!

Ahmed Ihab 14 Dec 15, 2022
Let's create a Flutter Collapsible Sidebar Menu that can collapse and expand the Navigation Drawer in Flutter.

Flutter Tutorial - Collapsible Sidebar Menu & Navigation Drawer Let's create a Flutter Collapsible Sidebar Menu that can collapse and expand the Navig

Johannes Milke 22 Jan 3, 2023
A flutter widget to indicate loading progress. Easy to use, easy to extend

?? ?? ?? A flutter widget to indicate loading progress. Easy to use, easy to extend

Manuel Duarte 2 May 30, 2022
FFloat, although simple and easy to use, can satisfy all your imagination of the floating layer.

ffloat FFloat, although simple and easy to use, can satisfy all your imagination of the floating layer. Born and elegant, supporting precise position

Fliggy Mobile 221 Oct 25, 2022