使用脚手架体内的按钮颤振打开抽屉

flutter opening a drawer using a button inside a scaffold body

我有什么 一个带有 onpress 打开抽屉的自定义按钮,我的构建片段:(inside MyClassState)

  Widget build(BuildContext context) => Scaffold(
      key: _key,
      body: Container(
        child: Column(
                  children: [
                    Row(children: [

ElevatedButton(
  child: Padding(
    padding: const EdgeInsets.all(5.0),
    child: Icon(
      Icons.settings,
      size: 38,
      color: Colors.white,
    ),
  ),
  onPressed: () => _key.currentState?.openEndDrawer(),
), 

]),]),))

使用方法globalkey _key(阅读一些解决方案后

Class MyClassState extends State<MyClass> {
    GlobalKey<ScaffoldState> _key = GlobalKey();
  ...
}

如我所料

抽屉在 press/tap

打开

当前行为结果

点击没有任何反应,但我可以使用滑动手势打开抽屉。

在这种情况下我做错了什么?

您没有在脚手架中声明 endDrawer,这是您更新后的代码

 Widget build(BuildContext context) => Scaffold(
      key: _key,
      endDrawer: Drawer(      /// this is missing in your code
        child: Container(
          width: 200,
          color: Colors.red,
        ),
      ),
      body: Container(
        child: Column(
                  children: [
                    Row(children: [

ElevatedButton(
  child: Padding(
    padding: const EdgeInsets.all(5.0),
    child: Icon(
      Icons.settings,
      size: 38,
      color: Colors.white,
    ),
  ),
  onPressed: () => _key.currentState?.openEndDrawer(),
), 

]),]),))