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

Flutter中如何为日期选择器添加readonly属性?

解决方案

你遇到的问题大概率是拼写错误——Flutter的TextField组件对应的只读属性是**readOnly**(注意大写的O),而非全小写的readonly。以下是具体实现步骤:

正确实现只读输入框

在绑定spousedateOfBirthController的TextField中,添加readOnly: true属性,并在onTap回调中触发你的日期选择器方法,这样用户点击输入框会弹出选择器,同时无法手动输入内容:

TextField(
  controller: spousedateOfBirthController,
  // 核心:设置只读,注意参数名拼写
  readOnly: true,
  // 点击输入框时触发日期选择器
  onTap: () => SelectSpouseDOB(context),
  decoration: const InputDecoration(
    labelText: '配偶出生日期',
    border: OutlineInputBorder(),
  ),
  // 可选:保留日期格式的输入键盘样式
  keyboardType: TextInputType.datetime,
)

额外说明

  • 如果设置enabled: false也能禁止输入,但会让输入框样式变灰,交互体验不如readOnly友好;
  • 你的SelectSpouseDOB方法无需修改,保持原有逻辑即可,选择日期后会自动更新输入框内容。

内容的提问来源于stack exchange,提问作者Samruddhi Chavan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 00:42:56