Flutter中如何获取TextField的默认背景色?
获取Material TextField默认浅灰色背景色
可以通过Theme.of(context)访问到这个默认背景色,不同Material版本的取值路径略有区别:
- Material 3:TextField默认的浅灰色背景色来自主题色板的
surfaceVariant,直接通过Theme.of(context).colorScheme.surfaceVariant即可获取。 - Material 2:未聚焦状态下的默认背景色,优先取
Theme.of(context).inputDecorationTheme.fillColor;如果没有自定义配置这个值,会 fallback 到基于canvasColor的浅灰变体,你可以用Theme.of(context).inputDecorationTheme.fillColor ?? Theme.of(context).canvasColor.withOpacity(0.12)来适配。
你可以通过代码快速验证:
// Material 3 获取示例 Color textFieldDefaultBg = Theme.of(context).colorScheme.surfaceVariant; // Material 2 获取示例 Color textFieldDefaultBg = Theme.of(context).inputDecorationTheme.fillColor ?? Theme.of(context).canvasColor.withOpacity(0.12);
内容的提问来源于stack exchange,提问作者Christian
相关产品推荐
相关产品推荐

