Flutter中不修改colorScheme的inversePrimary,如何修改SnackBarAction文字颜色?
Flutter 3.7.7稳定版SnackBarAction颜色无法覆盖问题
在Flutter 3.7.7稳定版中,SnackBarAction的文字颜色存在优先级异常问题:它会强制使用ColorScheme的inversePrimary值,完全忽略SnackBarThemeData.actionTextColor以及SnackBarAction自身的textColor配置。
问题复现代码
// 组件内直接设置textColor action: SnackBarAction( label: 'Undo', onPressed: () {}, textColor: Colors.red, ), // Theme全局配置SnackBar主题 snackBarTheme: const SnackBarThemeData( actionTextColor: Colors.red, ), // ColorScheme中的inversePrimary设置 inversePrimary: Color(0xFF86D992),
执行上述代码后,SnackBarAction的文字颜色仍为inversePrimary对应的#86D992,而非设置的红色。
临时解决方式
- 若无法升级Flutter版本,可临时将ColorScheme的
inversePrimary改为你需要的SnackBarAction文字颜色; - 升级Flutter至3.7.8及以上稳定版,该版本已修复此优先级问题,
textColor和actionTextColor将恢复正常优先级。
内容的提问来源于stack exchange,提问作者s4nk37
相关产品推荐
相关产品推荐

