Flutter 仅允许小写,无空格输入文本字段抖动
因此,我正在制作一个聊天应用程序,我希望用户提交的用户名不应为大写且有空格,我可以接受该名称,稍后在onchanged feature中进行更改,但我希望用户也知道该名称。关于更改文本,请尝试执行以下操作: 假设“s”是用户名:Flutter 仅允许小写,无空格输入文本字段抖动,flutter,flutter-layout,Flutter,Flutter Layout,因此,我正在制作一个聊天应用程序,我希望用户提交的用户名不应为大写且有空格,我可以接受该名称,稍后在onchanged feature中进行更改,但我希望用户也知道该名称。关于更改文本,请尝试执行以下操作: 假设“s”是用户名: String s = "" onChange(val) { s = val.trim().toLowerCase() } 如果要通知用户,可以使用带有文本的警报对话框,让他们知道用户名不应为大写且不包含空格。无论如何,你不能假设用户会遵守他们“应该做的” 您可以
String s = ""
onChange(val) {
s = val.trim().toLowerCase()
}
如果要通知用户,可以使用带有文本的警报对话框,让他们知道用户名不应为大写且不包含空格。无论如何,你不能假设用户会遵守他们“应该做的” 您可以使用
表单
,然后使用错误字段(验证器)通知用户
flatter的
TextField
或TextFormField
具有名为inputFormatters
的属性,该属性包含TextInputFormatter
的列表
在您的案例中有用的TextInputFormatters
示例
filteringtemputFormatter.allow(RegExp(“[a-z]”))
TextField(
输入格式化程序:[
FilteringPutFormatter.allow(RegExp(“[a-z]”)),
],
)
您可以在此处查看TextInputFormatters
API文档:
(颤振前1.20):
whitelistingdeputFormatter(RegExp(“[a-z]”)),
TextField(
输入格式化程序:[
WhiteListingPutFormatter(RegExp(“[a-z]”)),
],
)
如果不够清楚,您可以将其作为参考:
还可以查看此SOF问题:注释:使用
过滤器外部计算机格式化程序。允许而不是白名单外部计算机格式化程序
。因为此功能在v1.20.0-1.0.pre之后被弃用FilteringPutFormatter
。allow是一种类型模式,
下面是如何使用它
TextField(
inputFormatters: [
// is able to enter lowercase letters
FilteringTextInputFormatter.allow(RegExp("[a-z]")),
],
)
这意味着用户输入的任何文本都应该是小写的非常感谢@Saifallak,即使我搜索的内容完全不同。但有一个提示:“WhiteListingDeputFormatter”已被弃用,不应使用。请改用FilteringTemperatter.allow。此功能在v1.20.0-1.0.pre之后被弃用。@Jakob Kühne,感谢您的更正,我将更新我的答案供未来的观众使用!
TextField(
inputFormatters: [
// is able to enter lowercase letters
FilteringTextInputFormatter.allow(RegExp("[a-z]")),
],
)