如何在 flutter 中添加密码输入类型使得密码用户输入不可见,就像 Android NativeEditText 的 inputtype: Password 一样?

我遇到了一个问题,Flutter 的 TextInputType 没有密码类型:

/// All possible enum values.


static const List<TextInputType> values = const <TextInputType>[
text, multiline, number, phone, datetime, emailAddress, url,
];

how to make the password user input not visible? any one has a good idea ?

134233 次浏览

如果您正在使用 TextField小部件(或者从这个小部件派生出来的东西) ,可以使用 obscureText属性并将其设置为 true。更多细节可以找到 给你

此外,考虑添加这些属性以防止输入建议,因为它们可能会将至少部分密码输入显示给屏幕查看器。

obscureText: true,
enableSuggestions: false,
autocorrect: false,

只要在 TextFormField中加入 obscureText: true:

 TextFormField(
obscureText: true,
decoration: const InputDecoration(
labelText: 'Password',
),
validator: (String value) {
if (value.trim().isEmpty) {
return 'Password is required';
}
return null;
},
),

只有两个地方可以隐藏密码。

1. 使用 TextFormField

   TextFormField(
obscureText: true,
decoration: const InputDecoration(
labelText: 'Password',
),
),

2. 使用 TextField

              TextField(
obscureText: true,
decoration: const InputDecoration(
labelText: 'Password',
),
)

使用 TextField

字符: “ *”,

 TextField(
obscureText: true,
onChanged: (){},
obscuringCharacter: "*",
decoration: InputDecoration(
hintText: "Enter password",
icon: Icon(Icons.lock,color: kPrimaryColor,),
),
),