升级Flutter到v2.5.3后出现TextTheme类未定义subhead getter的报错问题
问题原因
这个报错是Flutter 2.0及以上版本对TextTheme的属性命名做了破坏性更新导致的:旧版本中使用的subhead属性已被官方完全移除,替代属性为subtitle1。
解决方案
- 自有业务代码报错修复:直接将触发报错的代码
Theme.of(context).textTheme.subhead替换为Theme.of(context).textTheme.subtitle1即可。 - 第三方库
searchable_dropdown-1.1.3报错修复,有两种可选方案:- 方案1(推荐):升级依赖库版本。该库从1.2.0版本开始已经适配了Flutter 2.x的
TextTheme属性变更,你只需要在pubspec.yaml文件中将该依赖的版本号调整为^1.2.0及以上,执行flutter pub get刷新依赖即可解决问题。 - 方案2(临时兼容):如果业务层面无法升级库版本,可以手动修改本地Pub缓存中的库文件:找到报错的
searchable_dropdown.dart文件第374行,将.subhead修改为.subtitle1即可。注意该修改仅对本地缓存生效,更换设备或重新拉取依赖后需要重新修改。
- 方案1(推荐):升级依赖库版本。该库从1.2.0版本开始已经适配了Flutter 2.x的
内容的提问来源于stack exchange,提问作者O'brian Shing'andu
相关产品推荐
相关产品推荐

