showBottomSheet 如何点击背景关闭
时间: 2024-01-25 14:02:02 浏览: 32
要在点击背景时关闭 BottomSheet,您可以在创建 BottomSheet 时为其指定一个背景点击监听器,然后在监听器中执行 dismiss 方法,如下所示:
```kotlin
val bottomSheet = BottomSheetDialog(context)
bottomSheet.setContentView(view)
bottomSheet.window?.findViewById<View>(com.google.android.material.R.id.design_bottom_sheet)?.setOnClickListener {
bottomSheet.dismiss()
}
bottomSheet.show()
```
这里我们使用 `setContentView` 方法设置 BottomSheet 的内容视图,然后使用 `window.findViewById` 方法获取背景视图,为其设置点击监听器,在监听器中调用 `dismiss` 方法关闭 BottomSheet。
相关问题
flutter showBottomSheet 如何点击背景关闭
要在 Flutter 中实现点击背景关闭 BottomSheet,可以在 `showBottomSheet` 方法中设置 `backgroundColor` 参数为透明,并为其添加一个 `GestureDetector`,监听背景点击事件,代码如下:
```dart
showBottomSheet(
context: context,
backgroundColor: Colors.transparent,
builder: (BuildContext context) {
return GestureDetector(
onTap: () {
Navigator.of(context).pop();
},
child: Container(
height: 200,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.only(
topLeft: Radius.circular(20.0),
topRight: Radius.circular(20.0),
),
),
child: Center(
child: Text('BottomSheet Content'),
),
),
);
},
);
```
在这个例子中,我们将 `backgroundColor` 设置为透明色,背景默认是可点击的,我们通过 `GestureDetector` 监听背景点击事件,当点击背景时,通过 `Navigator.of(context).pop()` 方法关闭 BottomSheet。注意,这里的 `context` 是 `showBottomSheet` 方法中的 `BuildContext`。
showBottomSheet 禁用客户点击背景
要禁用用户点击背景,可以使用showModalBottomSheet方法代替showBottomSheet方法。 showModalBottomSheet方法可以设置isDismissible属性为false来禁用用户点击背景。下面是一个示例代码:
```
showModalBottomSheet(
context: context,
isDismissible: false,
builder: (BuildContext context) {
// 底部弹出框内容
return Container(
child: Text('这是一个底部弹出框'),
);
},
);
```
在这个例子中,底部弹出框内容为一个文本框,isDismissible属性设置为false,这样用户就无法点击背景来关闭底部弹出框了。
相关推荐
![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)