Flutter中无法修改TextFormField的hint样式及输入文本格式是什么原因?
问题原因
- 输入文本的样式不受
InputDecoration的hintStyle控制,你没有给TextFormField配置style属性,所以默认使用全局主题的黑色、左对齐样式。 - 提示文本样式未生效通常有两个原因:一是你没有配置
hintText参数,提示文本没有渲染自然看不到样式;二是全局ThemeData中的inputDecorationTheme配置覆盖了局部设置的hintStyle。
解决方法
补充TextFormField的style和textAlign属性,同时补全InputDecoration的相关配置即可,修改后的代码如下:
Neumorphic( style: NeumorphicStyle( color: HexColor("E19D4D"), depth: -3, ), child: SizedBox( width: MediaQuery.of(context).size.width / 2, child: TextFormField( controller: _feetController, keyboardType: TextInputType.number, onChanged: (_) => _convertUnit(UnitType.feet), // 控制输入文本样式 style: const TextStyle( color: Colors.white, ), // 控制文本(含提示文本)居中对齐 textAlign: TextAlign.center, decoration: const InputDecoration( border: InputBorder.none, // 补全提示文本内容,按需修改 hintText: "输入英尺数值", hintStyle: TextStyle(color: Colors.green), ), ), ), ),
如果调整后提示文本样式还是被全局主题覆盖,可以在外层增加Theme组件局部覆盖输入框主题配置:
Theme( data: Theme.of(context).copyWith( inputDecorationTheme: const InputDecorationTheme( hintStyle: TextStyle(color: Colors.green), ), ), child: // 上面修改后的Neumorphic组件 )
内容的提问来源于stack exchange,提问作者MNBLabs
相关产品推荐
相关产品推荐

