You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 22:40:41