flutter_boom_menu_new 1.0.1 copy "flutter_boom_menu_new: ^1.0.1" to clipboard
flutter_boom_menu_new: ^1.0.1 copied to clipboard

Flutter plugin to implement a Boom Menu, with icons, title, sub title, animated FAB Icon and hide on scrolling.

example/lib/main.dart

/// Created by aimen 2022-07-27.
/// Email : aymensayoud2019@gmail.com

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

import 'package:flutter_boom_menu_new/flutter_boom_menu_new.dart';

void main() {
  runApp(MaterialApp(home: MyApp(), title: 'Boom Menu Example'));
}

class MyApp extends StatefulWidget {
  @override
  MyAppState createState() => MyAppState();
}

class MyAppState extends State<MyApp> with TickerProviderStateMixin {
  ScrollController? scrollController;
  bool scrollVisible = true;

  @override
  void initState() {
    super.initState();

    scrollController = ScrollController()
      ..addListener(() {
        setDialVisible(scrollController!.position.userScrollDirection ==
            ScrollDirection.forward);
      });
  }

  void setDialVisible(bool value) {
    setState(() {
      scrollVisible = value;
    });
  }

  Widget buildBody() {
    return ListView.builder(
      controller: scrollController,
      itemCount: 30,
      itemBuilder: (ctx, i) => ListTile(title: Text('Item $i')),
    );
  }

  BoomMenu buildBoomMenu() {
    return BoomMenu(
        animatedIcon: AnimatedIcons.menu_close,
        animatedIconTheme: IconThemeData(size: 22.0),
        //child: Icon(Icons.add),
        onOpen: () => print('OPENING DIAL'),
        onClose: () => print('DIAL CLOSED'),
        scrollVisible: scrollVisible,
        overlayColor: Colors.black,
        elevation: 10,
        overlayOpacity: 0.7,
        children: [
          MenuItemModel(
//          child: Icon(Icons.accessibility, color: Colors.black, size: 40,),
            child:
                Image.asset('assets/logout_icon.png', color: Colors.grey[850]),
            title: "Logout",
            titleColor: Colors.grey[850]!,
            subtitle: "Lorem ipsum dolor sit amet, consectetur",
            subTitleColor: Colors.grey[850]!,
            backgroundColor: Colors.grey[50]!,
            onTap: () => print('THIRD CHILD'),
            elevation: 10,
          ),
          MenuItemModel(
            child: Image.asset('assets/schemes_icon.png', color: Colors.white),
            title: "List",
            titleColor: Colors.white,
            subtitle: "Lorem ipsum dolor sit amet, consectetur",
            subTitleColor: Colors.white,
            backgroundColor: Colors.pinkAccent,
            onTap: () => print('FOURTH CHILD'),
            elevation: 10,
          ),
          MenuItemModel(
            child: Image.asset('assets/customers_icon.png',
                color: Colors.grey[850]),
            title: "Team",
            titleColor: Colors.grey[850]!,
            subtitle: "Lorem ipsum dolor sit amet, consectetur",
            subTitleColor: Colors.grey[850]!,
            backgroundColor: Colors.grey[50]!,
            onTap: () => print('THIRD CHILD'),
            elevation: 10,
          ),
          MenuItemModel(
            child: Image.asset('assets/profile_icon.png', color: Colors.white),
            title: "Profile",
            titleColor: Colors.white,
            subtitle: "Lorem ipsum dolor sit amet, consectetur",
            subTitleColor: Colors.white,
            backgroundColor: Colors.blue,
            onTap: () => print('FOURTH CHILD'),
            elevation: 10,
          )
        ]);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Boom Menu Example')),
      body: buildBody(),
      floatingActionButton: buildBoomMenu(),
    );
  }
}
3
likes
120
pub points
68%
popularity

Publisher

unverified uploader

Flutter plugin to implement a Boom Menu, with icons, title, sub title, animated FAB Icon and hide on scrolling.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (LICENSE)

Dependencies

flutter

More

Packages that depend on flutter_boom_menu_new