SingleChildScrollView无keyboardDismissBehavior参数报错求助(未用pull_to_refresh)
问题原因
keyboardDismissBehavior是Flutter 2.3.0-13.0.pre预览版之后才正式加入SingleChildScrollView等滚动组件的属性,出现该报错通常有两类原因。
解决方案
- 首先检查本地Flutter SDK版本
终端执行命令flutter --version,如果版本低于2.3.0,升级SDK到3.0+稳定版即可修复属性不存在的问题。 - 若SDK版本符合要求,排查依赖冲突
即便未引入pull_to_refresh包,也可能是其他滚动类第三方依赖重写了同名SingleChildScrollView类,覆盖了官方原生组件。按住Ctrl(Mac端按住Command)点击代码中的SingleChildScrollView,查看跳转的定义文件:如果跳转的不是Flutter SDK内的scroll_view.dart文件,而是第三方包内的文件,可将对应第三方包升级到适配高版本Flutter的版本,或导入该第三方包时添加别名区分使用。 - 临时替代方案
若暂时无法升级SDK或修改依赖,可通过外层嵌套手势组件实现相同的点击收起键盘效果,参考代码:GestureDetector( onTap: () => FocusScope.of(context).unfocus(), child: SingleChildScrollView( // 此处保留你原有的SingleChildScrollView代码逻辑 ), )
内容的提问来源于stack exchange,提问作者Joe Lam
相关产品推荐
相关产品推荐

