All Projects → qqmikey → Kf_drawer

qqmikey / Kf_drawer

Licence: other
Flutter drawer (dynamic ready side menu)

Programming Languages

dart
5743 projects

Projects that are alternatives of or similar to Kf drawer

drawer
A touch-enabled drawer component for the modern web.
Stars: ✭ 26 (-81.94%)
Mutual labels:  drawer, menu
Kwdrawercontroller
Drawer view controller that easy to use!
Stars: ✭ 154 (+6.94%)
Mutual labels:  menu, drawer
Duo Navigation Drawer
A flexible, easy to use, unique drawer library for your Android project.
Stars: ✭ 986 (+584.72%)
Mutual labels:  menu, drawer
Mmenu Js
The best javascript plugin for app look-alike on- and off-canvas menus with sliding submenus for your website and webapp.
Stars: ✭ 2,535 (+1660.42%)
Mutual labels:  menu, drawer
Beagle
A smart, reliable, and highly customizable debug menu library for Android apps that supports screen recording, network activity logging, and many other useful features.
Stars: ✭ 287 (+99.31%)
Mutual labels:  menu, drawer
Flowingmenu
Interactive view transition to display menus with flowing and bouncing effects in Swift
Stars: ✭ 946 (+556.94%)
Mutual labels:  menu, drawer
Drawer Behavior Flutter
Drawer behavior is a library that provide an extra behavior on drawer, such as, move view or scaling view's height while drawer on slide.
Stars: ✭ 110 (-23.61%)
Mutual labels:  menu, drawer
Menu
A JavaScript free menu library for Blazor and Razor Components applications.
Stars: ✭ 118 (-18.06%)
Mutual labels:  menu
Wmenu
An easy to use menu structure for cli applications that prompts users to make choices.
Stars: ✭ 130 (-9.72%)
Mutual labels:  menu
Pushy
Pushy is a responsive off-canvas navigation menu using CSS transforms & transitions.
Stars: ✭ 1,488 (+933.33%)
Mutual labels:  menu
Bootstrap Dropdown Hover
Bootstrap based responsive mulltilevel dropdown navigation menu with fascinating animations
Stars: ✭ 115 (-20.14%)
Mutual labels:  menu
Urpm
urpm 是一套基于Laravel封装的后台用户管理权限系统,能够让开发者不用再关心权限问题,实现后台功能的快速开发。
Stars: ✭ 118 (-18.06%)
Mutual labels:  menu
Hyperion Android
App Debugging & Inspection Tool for Android
Stars: ✭ 1,778 (+1134.72%)
Mutual labels:  drawer
Draggablemenu
A draggable menu that shows a thumbnail preview of an image grid
Stars: ✭ 117 (-18.75%)
Mutual labels:  menu
React Native Drawer Menu
A drawer component for React Native Application.
Stars: ✭ 140 (-2.78%)
Mutual labels:  drawer
Springfabmenu
A menu of FloatingActionButton items, designed to be anchored on an AppBarLayout.
Stars: ✭ 116 (-19.44%)
Mutual labels:  menu
Brisk Menu
An efficient menu for the MATE Desktop
Stars: ✭ 142 (-1.39%)
Mutual labels:  menu
React Command Palette
An accessible browser compatible javascript command palette
Stars: ✭ 140 (-2.78%)
Mutual labels:  menu
Xlslidemenu
iOS 仿QQ的左右抽屉效果
Stars: ✭ 122 (-15.28%)
Mutual labels:  menu
Mp canvas drawer
🚀 微信小程序上canvas绘制图片助手,一个json就制作分享朋友圈图片
Stars: ✭ 1,611 (+1018.75%)
Mutual labels:  drawer

Flutter side menu (Drawer)

Getting Started

Use KFDrawer widget as Scaffold's body with items property (List<KFDrawerItem>)

you should define onPressed on KFDrawerItem

KFDrawer properties
  • controller (optional)
  • header
  • footer
  • items (optional if controller defined)
  • decoration

or set drawer items with controller (KFDrawerController)

define page property on KFDrawerItem

KFDrawerController properties
  • initialPage
  • items
Drawer page widget should extend KFDrawerContent widget
You can use ClassBuilder for string based class init

Example

class MainWidget extends StatefulWidget {
  @override
  _MainWidgetState createState() => _MainWidgetState();
}

class _MainWidgetState extends State<MainWidget> {
  KFDrawerController _drawerController;

  @override
  void initState() {
    super.initState();
    _drawerController = KFDrawerController(
      initialPage: ClassBuilder.fromString('MainPage'),
      items: [
        KFDrawerItem.initWithPage(
          text: Text('MAIN', style: TextStyle(color: Colors.white)),
          icon: Icon(Icons.home, color: Colors.white),
          page: MainPage(),
        ),
        KFDrawerItem.initWithPage(
          text: Text(
            'CALENDAR',
            style: TextStyle(color: Colors.white),
          ),
          icon: Icon(Icons.calendar_today, color: Colors.white),
          page: CalendarPage(),
        ),
        KFDrawerItem.initWithPage(
          text: Text(
            'SETTINGS',
            style: TextStyle(color: Colors.white),
          ),
          icon: Icon(Icons.settings, color: Colors.white),
          page: ClassBuilder.fromString('SettingsPage'),
        ),
      ],
    );
  }
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: KFDrawer(
        controller: _drawerController,
        header: Align(
          alignment: Alignment.centerLeft,
          child: Container(
            padding: EdgeInsets.symmetric(horizontal: 16.0),
            width: MediaQuery.of(context).size.width * 0.6,
            child: Image.asset(
              'assets/logo.png',
              alignment: Alignment.centerLeft,
            ),
          ),
        ),
        footer: KFDrawerItem(
          text: Text(
            'SIGN IN',
            style: TextStyle(color: Colors.white),
          ),
          icon: Icon(
            Icons.input,
            color: Colors.white,
          ),
          onPressed: () {
            Navigator.of(context).push(CupertinoPageRoute(
              fullscreenDialog: true,
              builder: (BuildContext context) {
                return AuthPage();
              },
            ));
          },
        ),
        decoration: BoxDecoration(
          gradient: LinearGradient(
            begin: Alignment.topLeft,
            end: Alignment.bottomRight,
            colors: [Color.fromRGBO(255, 255, 255, 1.0), Color.fromRGBO(44, 72, 171, 1.0)],
            tileMode: TileMode.repeated,
          ),
        ),
      ),
    );
  }
}
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].