Flutter应用点击DropdownButton时崩溃的问题如何解决?
问题原因
- 该报错是Flutter 2.x ~ 3.0.x版本的原生已知Bug,DropdownButton首次渲染时未提前完成全局布局坐标计算,触发下拉菜单时高度校验断言失败导致崩溃。先点击TextFormField等组件会触发页面全局重绘,此时下拉菜单高度计算恢复正常,因此不会触发崩溃。
解决方案
可任选以下任意一种方案修复:
- 方案1:给
DropdownButton显式指定itemHeight属性,适配系统默认样式可直接赋值为kMinInteractiveDimension(Flutter内置的标准交互组件最小高度,默认值为48);如果自定义了DropdownMenuItem的高度,直接赋值为自定义的高度值即可。
核心修改示例:DropdownButton<String>( value: dropdownValue, itemHeight: kMinInteractiveDimension, // 新增该行 icon: const Icon(Icons.arrow_downward), iconSize: 24, elevation: 16, underline: SizedBox(), // 剩余原有代码保持不变 ) - 方案2:将Flutter SDK升级到3.3及以上正式版本,官方已在后续版本中修复了该断言校验逻辑的问题。
内容的提问来源于stack exchange,提问作者Burikay
相关产品推荐
相关产品推荐

