Flutter SnackBar 在 Scaffold 中留下不可见的填充
Posted
技术标签:
【中文标题】Flutter SnackBar 在 Scaffold 中留下不可见的填充【英文标题】:Flutter SnackBar leaves an invisible padding in the Scaffold 【发布时间】:2021-07-24 15:36:02 【问题描述】:我在页面中显示了一个登录按钮。例如,用户登录后,SnackBar
将显示“Logged In with Google”。虽然SnackBar
仍在显示,但Scaffold
的主体正在构建到一个新页面,登录用户可以访问该页面。但是,在 Snackbar
仍然显示时构建页面会在脚手架中留下一个填充,在 SnackBar
使用的区域中,因此底层 Scaffold
body
仍然可见,但您无法与其交互.如果body
的底部有一个按钮,则不会点击该按钮,因为(已经关闭的)SnackBar
留下的不可见填充会阻止下面的内容。
我错过了什么?还有其他方法可以产生预期的结果吗?
【问题讨论】:
我找到了问题的根本原因。如果在一个页面中显示一个 Snackbar,并且在显示它时,用户移动到另一个页面(例如在 bottomNagationBar 中),则新页面是使用我提到的填充问题构建的。但是,如果SnackBar
在移动到另一个页面之前消失,则没有问题。因此,将可见的SnackBar
“传输”到另一个页面会产生很多问题。知道可以做什么吗?
【参考方案1】:
我在每一页都用ScaffoldMessenger
包裹了Scaffold
,现在似乎可以工作了。我稍后会详细说明答案。
【讨论】:
以上是关于Flutter SnackBar 在 Scaffold 中留下不可见的填充的主要内容,如果未能解决你的问题,请参考以下文章
Flutter - 如何在“Future”中显示“snackbar”