Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to open a sidebar using GetX in Flutter

In Flutter I have seen the method Scaffold.of(context).openDrawer() to open sidebar. Currently I am using GetX in my project. Is there any alternative in Get to open Drawer? Thanks a lot for any help.

like image 614
Yakhyo Mashrapov Avatar asked Oct 19 '25 03:10

Yakhyo Mashrapov


1 Answers

For Drawer We have to use Scaffold and give darwer widget to it and open drawer using globalKey of scaffold state

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

void main() {
 Get.put(Controller());
 runApp(GetMaterialApp(home: Home()));
}

class Controller extends GetxController {
  var scaffoldKey = GlobalKey<ScaffoldState>();

void openDrawer() {
      scaffoldKey.currentState.openDrawer();
  }

  void closeDrawer() {
    scaffoldKey.currentState.openEndDrawer();
   }
}

class Home extends GetView<Controller> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
     appBar: AppBar(),
     key: controller.scaffoldKey,
     drawer: Drawer(
     child: ListView(
        padding: EdgeInsets.zero,
        children: <Widget>[
        DrawerHeader(
          child: Text('Drawer Header'),
          decoration: BoxDecoration(
            color: Colors.blue,
          ),
        ),
        ListTile(
          title: Text('Item 1'),
          onTap: controller.closeDrawer,
        )
      ],
    ),
  ),
  body: Center(
      child: Column(
    mainAxisAlignment: MainAxisAlignment.center,
    children: <Widget>[
      RaisedButton(
        onPressed: controller.openDrawer,
        child: Text('open drawer'),
       )
     ],
   )),
 );
 }
}
like image 184
rishabh mistry Avatar answered Oct 22 '25 07:10

rishabh mistry



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!