flutter - SafeArea 在模态底页中被忽略
问题描述
刚刚注意到顶部的 SafeArea 在showModalBottomSheet
设置为时被忽略isScrollControlled: true
。(我希望我的模式适合屏幕)有人找到解决方法吗?
showModalBottomSheet(
context: context,
isScrollControlled: true,
builder: (context) => MyModal(),
)
我的测试模态
class MyModal extends StatelessWidget {
@override
Widget build(BuildContext context) {
return SafeArea(
child: Column(
children: <Widget>[
Text('Modal'),
Expanded(
child: Container(
color: Colors.red,
))
],
),
);
}
}
输出
我通过设置模态内容的高度来临时修复它
SafeArea(
child: Container(
height: MediaQuery.of(context).size.height - 80,
child: Column(
children: ...
输出
解决方案
如果您使用GetX 试试看
final padding = MediaQuery.of(Get.context!).viewPadding;
否则,您可以将父上下文作为参数传递
final padding = MediaQuery.of(parentContext).viewPadding;
推荐阅读
- php - 如何在 wordpress 上添加 GET 参数的链接,而参数和当前页面之间没有斜线?
- php - 我如何选择数据和子查询组
- powershell - 从 for 循环循环输出到变量,然后导出到 HTML
- python - python搁置同步gdbm致命:读取错误
- angular - 从外部 URL 打开 sidenav
- php - 使用 php、mysql 和 jQuery 实现自动完成
- android - textview.settext 在微调器 Onitemselected 事件中不起作用
- python - Pydub 的实时连续声音
- javascript - 如何禁用对数据表中的列进行排序
- rust - 解析一串单字符命令的有效方法是什么,每个命令可选地后跟一个整数重复计数?