要实现这个功能,你可以使用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(),
  );
}

在这个例子中,如果_isContainerOpentrue,则显示Container,否则显示一个空的SizedBox。通过更新_isContainerOpen的值,你可以控制Container的显示和隐藏

flutter监听任意一个widget被点击的时候关闭某个widget

原文地址: https://www.cveoy.top/t/topic/c1Ar 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录