如何在 Flutter 中将小部件设置为按钮

How to set a widget as a button in Flutter

我在一个Stack()里设置了两个widgets,后面一个是侧边栏,前面一个是我的主页。
当我从主页面单击菜单按钮时,主页面向右移动,然后用户可以看到侧边栏。

现在的问题是,当显示侧边栏时,我不得不准确地单击菜单按钮以返回主页。
我想做的就是点击主页的任意位置来隐藏侧边栏。
我的意思是我想在侧边栏显示时将整个主页设置为一个按钮。

您可以使用InkWell

     InkWell(
        onTap: (){
         /// do something
        },
        child: Text('data')  /// your widget,
      ),

您也可以使用GestureDetector

我通过用 InkWell() 包装主页修复了它,并将其添加到 onTap 属性"

      InkWell(
        onTap: isSidebarCollapsed ? () {
          setState(() {
            isSidebarCollapsed = false;
          });
        } : null,
        child: Container(...)
      )

注意isSidebarCollapsed是决定菜单是否显示的变量。

代码解释:
如果侧边栏折叠(显示)然后 onTap 属性 returns 一个函数,我将变量 isSidebarCollapsed 设置为 false(表示侧边栏将被隐藏)。
否则它 returns null

一般来说,如果你想让任何东西都可以点击,你可以用 GestureDetector 包装小部件