组件树结构为Scaffold嵌套Scaffold时,在iOS有刘海屏的机型上,会出现子Scaffold顶部不响应点击事件的情况
页面结构如下:
整个页面是个Scaffold,红色框也是一个Scaffold,这时黄色框部分无法响应点击事件
一顿排查发现Scaffold会把顶部statusbar高度预留出来,这一部分高度无法点击
解决方式有三种:
1.在父组件外面套一层SafeArea
但这样顶部会有边距,不是我想要的
2.子组件不使用Scaffold
我这里需要Scaffold里的floatButton,所以这个方案我也没用
3.子组件Scaffold外层套一个MediaQuery.removePadding,把顶部空间移除掉
MediaQuery.removePadding(
context: context,
removeTop: true,
child: Scaffold(
backgroundColor: Colors.white,
floatingActionButton: _floatingBtn(),
body: _initSubviews(),
),
)