如何禁用键盘数字键 实现Flutter TextField仅支持输入文本
实现Flutter TextField禁用数字输入的方案
首先引入Flutter官方services依赖,用于调用输入格式限制工具:
import 'package:flutter/services.dart';
之后在你的TextField组件中添加inputFormatters配置,使用FilteringTextInputFormatter拦截所有数字输入即可,修改后的完整代码如下:
title: TextField( textCapitalization: TextCapitalization.sentences, style: TextStyle(color: Colors.white), controller: searchController, // 新增输入格式限制配置 inputFormatters: [ // 拒绝所有0-9的数字输入 FilteringTextInputFormatter.deny(RegExp(r'[0-9]')), ], decoration: InputDecoration( hintText: 'Search for staff name', hintStyle: TextStyle(color: Colors.white, fontWeight: FontWeight.w400), enabledBorder: UnderlineInputBorder( borderSide: BorderSide(color: Colors.white), ), focusedBorder: UnderlineInputBorder( borderSide: BorderSide(color: Colors.white), ), filled: true, enabled: true, prefixIcon: Icon( Icons.person_pin, color: Colors.white, size: 30, ), suffixIcon: IconButton( icon: Icon(Icons.clear, color: Colors.white), onPressed: emptyTheTextformfield, )), ),
如果你的使用场景是员工姓名输入,需要更严格的仅允许中英文、空格输入,可以把inputFormatters替换为白名单模式:
inputFormatters: [ // 仅允许中英文、空格输入,自动拦截其他所有字符 FilteringTextInputFormatter.allow(RegExp(r'[a-zA-Z\u4e00-\u9fa5\s]')), ],
内容的提问来源于stack exchange,提问作者Stormiz
相关产品推荐
相关产品推荐

