在Flutter中,TextFormField
是一个常用的输入框组件,允许用户输入文本。如果你想禁用字母字符的输入,可以通过 inputFormatters
属性来实现。inputFormatters
是一个 List<TextFormatter>
,可以用来限制用户的输入。
以下是一个示例代码,展示如何在 TextFormField
中禁用字母字符:
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Disable Letters in TextFormField'),
),
body: Center(
child: MyForm(),
),
),
);
}
}
class MyForm extends StatefulWidget {
@override
_MyFormState createState() => _MyFormState();
}
class _MyFormState extends State<MyForm> {
@override
Widget build(BuildContext context) {
return TextFormField(
decoration: InputDecoration(
labelText: 'Enter Numbers Only',
),
inputFormatters: [
FilteringTextInputFormatter.deny(RegExp(r'[a-zA-Z]')),
],
);
}
}
FilteringTextInputFormatter.deny(RegExp(r'[a-zA-Z]'))
:FilteringTextInputFormatter
是一个文本格式化器,用于过滤输入。deny
方法用于拒绝匹配指定正则表达式的字符。RegExp(r'[a-zA-Z]')
是一个正则表达式,匹配所有字母字符(大小写)。通过这种方式,你可以有效地限制 TextFormField
中的输入,确保用户只能输入你允许的字符类型。
领取专属 10元无门槛券
手把手带您无忧上云