showModalBottomSheet 不覆盖bottomNavigationBar
时间: 2024-01-02 09:02:23 浏览: 209
在Flutter中,showModalBottomSheet方法会在当前页面上方显示一个模态底部面板,该方法的调用可能会覆盖当前页面的bottomNavigationBar。要避免这种情况,可以使用以下两种方法:
1. 使用Scaffold的bottomNavigationBar属性来设置页面底部导航栏,而不是在页面中使用BottomNavigationBar组件。这样,即使showModalBottomSheet方法覆盖了页面的底部区域,底部导航栏也不会被覆盖。
2. 在showModalBottomSheet方法中设置isScrollControlled为true,这将导致模态底部面板显示在页面中,而不是在页面上方。这样,即使模态面板覆盖了页面的底部区域,底部导航栏也不会被覆盖。示例代码如下:
```dart
void _showModal(BuildContext context) {
showModalBottomSheet(
context: context,
isScrollControlled: true,
builder: (BuildContext context) {
return Container(
height: MediaQuery.of(context).size.height * 0.8,
child: Center(
child: Text('This is a modal bottom sheet'),
),
);
},
);
}
```
这样,在调用_showModal方法时,模态底部面板将显示在页面中,而不会覆盖底部导航栏。
阅读全文