The method 'WhitelistingTextInputFormatter' isn't defined for the type 'XXXXX'.
首先,在服务库中,你会发现TextInputFormatter抽象类(这意味着你必须导入包:flutter/services.dart)。
import 'package:flutter/services.dart';
以前是BlacklistingTextInputFormatter和WhitelistingTextInputFormatter。该功能在v1.20.0-1.0.pre版本后已弃用”,现在变为FilteringTextInputFormatter和LengthLimitingTextInputFormatter。
旧版方法
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
TextField(
//只允许输入字母
inputFormatters: [
WhitelistingTextInputFormatter(RegExp("[a-zA-Z]")),
],
),
//只允许输入数字
TextField(
inputFormatters: [WhitelistingTextInputFormatter.digitsOnly],
),
//只允许输入小数
TextField(
inputFormatters: [
WhitelistingTextInputFormatter(RegExp("[0-9.]")),
],
)
-
新方法:
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
TextField(
//只允许输入数
inputFormatters: [
FilteringTextInputFormatter.allow(RegExp("[0-9.]")),
],
),
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
/*only allow a to Z*/
TextField(
FilteringTextInputFormatter.allow(RegExp('[a-zA-Z]')
],
),
//禁止abF!.
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
inputFormatters: [
FilteringTextInputFormatter.deny(RegExp('[abF!.]')
),
],
允许输入大小写字母,但是禁止abF!.
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
inputFormatters: [
FilteringTextInputFormatter.allow(RegExp('[a-zA-Z]')),
FilteringTextInputFormatter.deny(RegExp('[abFeG]')),
],