Flutter 监听任意 Widget 点击并关闭另一个 Widget
要实现这个功能,你可以使用'GestureDetector'来监听任意一个widget被点击的事件,并在回调函数中关闭某个widget。
例如,假设你有一个'Container',你想在它被点击时关闭另一个'Container',你可以这样做:
Container(
child: GestureDetector(
onTap: () {
// 在这里关闭另一个Container
setState(() {
_isContainerOpen = false;
});
},
child: Text('点击我关闭另一个Container'),
),
),
在这个例子中,'GestureDetector'监听了'Text'被点击的事件,并在回调函数中使用'setState'来更新状态,从而关闭另一个'Container'。
注意,你需要在'State'类中定义一个布尔变量来控制'Container'的显示和隐藏,例如:
bool _isContainerOpen = true;
@override
Widget build(BuildContext context) {
return Scaffold(
body: _isContainerOpen ? Container() : SizedBox(),
);
}
在这个例子中,如果'_isContainerOpen'为'true',则显示'Container',否则显示一个空的'SizedBox'。通过更新'_isContainerOpen'的值,你可以控制'Container'的显示和隐藏。
原文地址: https://www.cveoy.top/t/topic/kpdV 著作权归作者所有。请勿转载和采集!