All Projects → marianocordoba → Fab Circular Menu

marianocordoba / Fab Circular Menu

Licence: mit
A Flutter package to create a nice circular menu using a Floating Action Button.

Programming Languages

dart
5743 projects

Projects that are alternatives of or similar to Fab Circular Menu

flutter fab dialer
Floating action button dialer
Stars: ✭ 66 (-56.58%)
Mutual labels:  menu, floatingactionbutton
Omfm
Another floating action button menu with expand/collapse behavior, in kotlin
Stars: ✭ 86 (-43.42%)
Mutual labels:  menu, floatingactionbutton
Dragfloatingactionbutton
一个可以随处拖曳FloatingActionButton,边缘自动吸附,可设置按钮悬浮透明度,拖曳避免阻挡界面视图无法查看。
Stars: ✭ 258 (+69.74%)
Mutual labels:  menu, floatingactionbutton
Hhfloatingview
An easy to use and setup floating view for your app. 🎡
Stars: ✭ 93 (-38.82%)
Mutual labels:  menu, floatingactionbutton
Fabsmenu
A simple library to use a menu of FloatingActionButtons from Design Support Library that follow Material Design Guidelines
Stars: ✭ 324 (+113.16%)
Mutual labels:  menu, floatingactionbutton
Springfabmenu
A menu of FloatingActionButton items, designed to be anchored on an AppBarLayout.
Stars: ✭ 116 (-23.68%)
Mutual labels:  menu, floatingactionbutton
Springactionmenu
This is a spring ActionMenu - 一个弹性的功能菜单
Stars: ✭ 120 (-21.05%)
Mutual labels:  menu
Liquidmenu
Menu creation Arduino library for LCDs, wraps LiquidCrystal.
Stars: ✭ 141 (-7.24%)
Mutual labels:  menu
Urpm
urpm 是一套基于Laravel封装的后台用户管理权限系统,能够让开发者不用再关心权限问题,实现后台功能的快速开发。
Stars: ✭ 118 (-22.37%)
Mutual labels:  menu
Draggablemenu
A draggable menu that shows a thumbnail preview of an image grid
Stars: ✭ 117 (-23.03%)
Mutual labels:  menu
Chinese Lunar Calendar For Mac
Chinese Lunar Calendar for Mac
Stars: ✭ 150 (-1.32%)
Mutual labels:  menu
Jquery Menu Editor
Multilevel Menu Editor for Bootstrap 4.x (Html & Javascript code)
Stars: ✭ 144 (-5.26%)
Mutual labels:  menu
Igcmenu
Grid and Circular Menu for iOS.
Stars: ✭ 136 (-10.53%)
Mutual labels:  menu
Floatingtoolbar
A toolbar that morphs from a FloatingActionButton
Stars: ✭ 1,540 (+913.16%)
Mutual labels:  floatingactionbutton
Brisk Menu
An efficient menu for the MATE Desktop
Stars: ✭ 142 (-6.58%)
Mutual labels:  menu
Quickmenu
The new era of mobile navigation for the web, we're out of hamburgers.
Stars: ✭ 119 (-21.71%)
Mutual labels:  menu
Dopdropdownmenu Enhanced
DOPDropDownMenu 添加双列表 优化版 新增图片支持(double tableView, The optimization version ,new add image,detailText)
Stars: ✭ 1,757 (+1055.92%)
Mutual labels:  menu
Menu
A JavaScript free menu library for Blazor and Razor Components applications.
Stars: ✭ 118 (-22.37%)
Mutual labels:  menu
Wmenu
An easy to use menu structure for cli applications that prompts users to make choices.
Stars: ✭ 130 (-14.47%)
Mutual labels:  menu
Kf drawer
Flutter drawer (dynamic ready side menu)
Stars: ✭ 144 (-5.26%)
Mutual labels:  menu

FAB Circular Menu

Pub Pull Requests are welcome Codemagic build status

A Flutter package to create a nice circular menu using a Floating Action Button.

Inspired by Mayur Kshirsagar's great FAB Microinteraction design.

Showcase

Installation

Just add fab_circular_menu to your pubspec.yml file

dependencies:
  fab_circular_menu: ^1.0.0

Example

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Placeholder(),
        floatingActionButton: FabCircularMenu(
          children: <Widget>[
            IconButton(icon: Icon(Icons.home), onPressed: () {
              print('Home');
            }),
            IconButton(icon: Icon(Icons.favorite), onPressed: () {
              print('Favorite');
            })
          ]
        )
      )
    );
  }
}

You can check for a more complete example in the example directory.

Customize

You can customize the widget appareance using the following properties:

Property Description Default
alignment Sets the widget alignment Alignment.bottomRight
ringColor Sets the ring color accentColor
ringDiameter Sets de ring diameter screenWidth * 1.25 (portrait)
screenHeight * 1.25 (landscape)
ringWidth Sets the ring width ringDiameter * 0.3
fabSize Sets the FAB size 64.0
fabElevation Sets the elevation for the FAB 8.0
fabColor Sets the FAB color primaryColor
fabOpenColor Sets the FAB color while the menu is open. This property takes precedence over fabColor -
fabCloseColor Sets the FAB color while the menu is closed. This property takes precedence over fabColor -
fabChild Sets the child inside the FAB. This property takes precedence over fabOpenicon and fabCloseIcon -
fabOpenIcon Sets the FAB icon while the menu is open Icon(Icons.menu)
fabCloseIcon Sets the FAB icon while the menu is closed Icon(Icons.close)
fabMargin Sets the widget margin EdgeInsets.all(16.0)
animationDuration Changes the animation duration Duration(milliseconds: 800)
animationCurve Allows you to modify de animation curve Curves.easeInOutCirc
onDisplayChange This callback is called every time the menu is opened or closed, passing the current state as a parameter. -

Handling the menu programmatically

It is possible to handle the menu programatically by using a key. Just create a key and set it in the key property of the FabCircularMenu, then use the key to get the current state and open, close or check the status of the menu.

class MyApp extends StatelessWidget {
  final GlobalKey<FabCircularMenuState> fabKey = GlobalKey();

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: RaisedButton(
          onPressed: () {
            if (fabKey.currentState.isOpen) {
              fabKey.currentState.close();
            } else {
              fabKey.currentState.open();
            }
          },
          child: Text('Toggle menu')
        ),
        floatingActionButton: FabCircularMenu(
          key: fabKey,
          children: <Widget>[
            // ...
          ]
        )
      )
    );
  }
}

Contributing

I will be very happy if you contribute to this project, please submit a PR 😁

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].