showBottomSheet 点击一次打开,再次点击关闭
时间: 2024-01-03 13:04:08 浏览: 32
您可以使用一个布尔变量来记录当前 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 的状态。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)