Flutter中如何设置DateFormat文本样式?解决选日期后hintStyle变更问题
解决TextFormField选中日期后文本样式不一致问题
你当前的TextFormField仅设置了hintStyle,这个样式只作用于未选择日期时的提示文本(比如示例里的"Doğum Gününüz"),而选择日期后显示的格式化日期文本属于输入框的实际内容,需要通过style属性来设置它的样式。
修改方案
在TextFormField中添加style属性,将bmiTextForm赋值给它,这样选中日期后的文本样式就会和提示文本保持一致:
InkWell( child: TextFormField( readOnly: true, textAlign: TextAlign.center, // 添加style属性,设置输入文本的样式 style: bmiTextForm, onTap: () async { DateTime? pickedDate = await showDatePicker( context: context, initialDate: DateTime.now(), firstDate: DateTime(1900), lastDate: DateTime.now()); if (pickedDate != null) { setState(() { _date.text = DateFormat('dd-MM-yyyy').format(pickedDate); }); } }, controller: _date, hintStyle: bmiTextForm, hintText: 'Doğum Gününüz'), ), ),
说明
hintStyle仅控制输入框无内容时的提示文本样式,而style属性负责控制输入框内实际显示文本的样式,两者是独立设置的。把目标样式同时赋值给这两个属性,就能保证提示文本和选中日期后的文本样式统一。
内容的提问来源于stack exchange,提问作者ckot
相关产品推荐
相关产品推荐

