在其他页面打开抽屉

问题描述 投票:0回答:3

我的抽屉位于我的 main.dart 文件中。我想用另一页打开抽屉。当然 Scaffold.of(context).openDrawer();没有工作。但我不知道。

flutter drawer
3个回答
2
投票

像这样创建一个公共抽屉:

import 'package:flutter/widgets.dart';

class PublicDrawer extends StatefulWidget {
  PublicDrawer({Key key}) : super(key: key);

  @override
  _PublicDrawerState createState() => _PublicDrawerState();
}

class _PublicDrawerState extends State<PublicDrawer> {
  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Container();
  }
}

在您的所有其他页面上,使用脚手架来实现您的抽屉:

import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:~~~~~~~/Widgets/drawer.dart';

class ProfilePage extends StatefulWidget {
  ProfilePage({Key key}) : super(key: key);

  @override
  _ProfilePageState createState() => _ProfilePageState();
}

class _ProfilePageState extends State<ProfilePage> {
  @override
  Widget build(BuildContext context) {
    return SafeArea(
      child: Scaffold(
        drawer: PublicDrawer(), <----
        body: Container(),
      ),
    );
  }
}


0
投票

从抽屉中制作一个组件,并将新页面(或要在其中打开抽屉的页面)放入其自己的支架中(而不是组件本身) 然后导入您的抽屉并将其插入脚手架抽屉中。 =)


0
投票

包裹你的脚手架.of(context).openDrawer(); 按钮或图标按钮或您正在使用的任何东西与生成器小部件这将解决问题

© www.soinside.com 2019 - 2024. All rights reserved.