SafeArea 在模态底部工作表中被忽略

Lon*_*olf 6 flutter

showModalBottomSheet刚刚注意到,当设置为时,顶部 SafeArea 被忽略isScrollControlled: true。(我希望我的模式适合屏幕)有人找到了修复它的方法吗?

showModalBottomSheet(
  context: context,
  isScrollControlled: true,
  builder: (context) => MyModal(),
)
Run Code Online (Sandbox Code Playgroud)

我的测试模式

class MyModal extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return SafeArea(
      child: Column(
        children: <Widget>[
          Text('Modal'),
          Expanded(
              child: Container(
            color: Colors.red,
          ))
        ],
      ),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

输出

在此输入图像描述

我通过设置模式内容的高度暂时修复了它

SafeArea(
      child: Container(
        height: MediaQuery.of(context).size.height - 80,
        child: Column(
          children: ...
Run Code Online (Sandbox Code Playgroud)

输出

在此输入图像描述

小智 -3

如果您正在使用GetX 尝试一下

    final padding = MediaQuery.of(Get.context!).viewPadding;
Run Code Online (Sandbox Code Playgroud)

否则,您可以将父上下文作为参数传递

    final padding = MediaQuery.of(parentContext).viewPadding;
Run Code Online (Sandbox Code Playgroud)