如何在 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 包装小部件
我在一个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 包装小部件