showBottomSheet 点击一次打开,再次点击关闭
时间: 2024-01-03 14:04:08 浏览: 73
再按一次退出
您可以使用一个布尔变量来记录当前 BottomSheet 的状态,然后在点击按钮时根据状态打开或关闭 BottomSheet。具体实现可以参考下面的代码示例:
```
bool _isBottomSheetOpen = false;
void _toggleBottomSheet() {
setState(() {
_isBottomSheetOpen = !_isBottomSheetOpen;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: RaisedButton(
child: Text('打开 BottomSheet'),
onPressed: _toggleBottomSheet,
),
),
bottomSheet: _isBottomSheetOpen ? Container(
height: 200,
color: Colors.grey[200],
child: Center(
child: RaisedButton(
child: Text('关闭 BottomSheet'),
onPressed: _toggleBottomSheet,
),
),
) : null,
);
}
```
在上面的代码中,我们使用了一个 `_isBottomSheetOpen` 变量来记录 BottomSheet 的状态,然后在 `_toggleBottomSheet` 方法中切换该变量的值。在 `build` 方法中,根据 `_isBottomSheetOpen` 变量的值来确定是否显示 BottomSheet。点击按钮时,会调用 `_toggleBottomSheet` 方法来切换 BottomSheet 的状态。
阅读全文