【问题标题】:How to open a sidebar using GetX in Flutter如何在 Flutter 中使用 GetX 打开侧边栏
【发布时间】:2021-08-11 09:11:49
【问题描述】:

在 Flutter 中我看到了 Scaffold.of(context).openDrawer() 打开侧边栏的方法。目前我在我的项目中使用 GetX。 Get中是否有其他方法可以打开抽屉?非常感谢您的帮助。

【问题讨论】:

    标签: flutter flutter-getx


    【解决方案1】:

    对于 Drawer 我们必须使用 Scaffold 并为其提供更小部件并使用脚手架状态的 globalKey 打开抽屉

    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'),
           )
         ],
       )),
     );
     }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-19
      • 1970-01-01
      • 1970-01-01
      • 2020-03-04
      相关资源
      最近更新 更多