Android studio 颤振:模糊文本,未定义参数
我最近开始学习Flitter,现在正在制作Instagram克隆。我正试图使用“obclusterText”隐藏密码,但收到一个错误:未定义命名参数“obclusterText” 我在网上搜索了一会儿,但找不到解决办法 这是我第一次在这里发帖,如果我遗漏了什么或者把它放错了地方,请告诉我 谢谢!:)Android studio 颤振:模糊文本,未定义参数,android-studio,flutter,dart,Android Studio,Flutter,Dart,我最近开始学习Flitter,现在正在制作Instagram克隆。我正试图使用“obclusterText”隐藏密码,但收到一个错误:未定义命名参数“obclusterText” 我在网上搜索了一会儿,但找不到解决办法 这是我第一次在这里发帖,如果我遗漏了什么或者把它放错了地方,请告诉我 谢谢!:) import'包装:flift/cupertino.dart'; 进口“包装:颤振/材料.省道”; 类LoginScreen扩展StatefulWidget{ @凌驾 _LoginsScreenSt
import'包装:flift/cupertino.dart';
进口“包装:颤振/材料.省道”;
类LoginScreen扩展StatefulWidget{
@凌驾
_LoginsScreenState createState()=>\u LoginsScreenState();
}
类_LoginScreenState扩展状态{
final _formKey=GlobalKey();
字符串\u电子邮件,\u密码;
@凌驾
小部件构建(构建上下文){
var对称;
返回脚手架(
正文:中(
子:列(
mainAxisAlignment:mainAxisAlignment.center,
crossAxisAlignment:crossAxisAlignment.center,
儿童:[
正文(
“Instagram”,
样式:TextStyle(fontFamily:'Billabong',fontSize:50.0),
),
形式(
键:_formKey,
子:列(
mainAxisSize:mainAxisSize.min,
儿童:[
填充物(
衬垫:
边缘组。对称(水平:30.0,垂直:10.0),
子项:TextFormField(
装饰:输入装饰(标签文本:“电子邮件”),
验证程序:(输入)=>!input.contains(“@”)
?“请输入有效的电子邮件”
:null,
onSaved:(输入)=>\u email=input),
),
填充物(
衬垫:
边缘组。对称(水平:30.0,垂直:10.0),
子项:TextFormField(
装饰:输入装饰(标签文本:“密码”),
验证程序:(输入)=>!input.contains(“@”)
?“请输入有效的电子邮件”
:null,
onSaved:(输入)=>\u email=input),
蒙昧文字:对,
),
],
),
)
],
),
),
);
}
}
之所以出现此错误,是因为您在TextFormField小部件中定义了obsolizeText属性。
正确的方法是:
class LoginScreen extends StatefulWidget {
@override
_LoginScreenState createState() => _LoginScreenState();
}
class _LoginScreenState extends State<LoginScreen> {
final _formKey = GlobalKey<FormState>();
String _email, _password;
@override
Widget build(BuildContext context) {
var symmetric;
return Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Text(
'Instagram',
style: TextStyle(fontFamily: 'Billabong', fontSize: 50.0),
),
Form(
key: _formKey,
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Padding(
padding:
EdgeInsets.symmetric(horizontal: 30.0, vertical: 10.0),
child: TextFormField(
decoration: InputDecoration(labelText: 'Email'),
validator: (input) => !input.contains('@')
? 'Please enter a valid email'
: null,
onSaved: (input) => _email = input),
),
Padding(
padding: EdgeInsets.symmetric(horizontal: 30.0, vertical: 10.0),
child: TextFormField(
obscureText: true,
decoration: InputDecoration(labelText: 'Password'),
validator: (input) => !input.contains('@')
? 'Please enter a valid email'
: null,
onSaved: (input) => _email = input),
),
],
),
)
],
),
),
);
}
}
class LoginScreen扩展StatefulWidget{
@凌驾
_LoginsScreenState createState()=>\u LoginsScreenState();
}
类_LoginScreenState扩展状态{
final _formKey=GlobalKey();
字符串\u电子邮件,\u密码;
@凌驾
小部件构建(构建上下文){
var对称;
返回脚手架(
正文:中(
子:列(
mainAxisAlignment:mainAxisAlignment.center,
crossAxisAlignment:crossAxisAlignment.center,
儿童:[
正文(
“Instagram”,
样式:TextStyle(fontFamily:'Billabong',fontSize:50.0),
),
形式(
键:_formKey,
子:列(
mainAxisSize:mainAxisSize.min,
儿童:[
填充物(
衬垫:
边缘组。对称(水平:30.0,垂直:10.0),
子项:TextFormField(
装饰:输入装饰(标签文本:“电子邮件”),
验证程序:(输入)=>!input.contains(“@”)
?“请输入有效的电子邮件”
:null,
onSaved:(输入)=>\u email=input),
),
填充物(
填充:边缘组。对称(水平:30.0,垂直:10.0),
子项:TextFormField(
蒙昧文字:对,
装饰:输入装饰(标签文本:“密码”),
验证程序:(输入)=>!input.contains(“@”)
?“请输入有效的电子邮件”
:null,
onSaved:(输入)=>\u email=input),
),
],
),
)
],
),
),
);
}
}
你好@Angel Hernandez,欢迎来到社区
我猜您已经将ObservateText放在TextFormField之外了
填充(
衬垫:
边缘组。对称(水平:30.0,垂直:10.0),
子项:TextFormField(
装饰:输入装饰(标签文本:“密码”),
验证程序:(输入)=>!input.contains(“@”)
?“请输入有效的电子邮件”
:null,
onSaved:(输入)=>\u电子邮件=输入,
蒙蔽文本:true,//TextFormField,
)//填充物,
您犯了一个小小的错误,蒙蔽文本:true位于小部件树的TextFormField下面。它应该在TextFormField中
用以下代码替换填充小部件(包装在输入装饰(labelText:'Password')
),它将开始工作:
Padding(
padding:
EdgeInsets.symmetric(horizontal: 30.0, vertical: 10.0),
child: TextFormField(
decoration: InputDecoration(labelText: 'Password'),
validator: (input) => !input.contains('@')
? 'Please enter a valid email'
: null,
onSaved: (input) => _email = input,
obscureText: true,
),
),
非常感谢你,我完全错过了!非常感谢你们抽出时间,你们真是太棒了!谢谢你的帮助!我花了很长时间认为这是一个更实质性的东西。很高兴它起了作用!
Padding(
padding:
EdgeInsets.symmetric(horizontal: 30.0, vertical: 10.0),
child: TextFormField(
decoration: InputDecoration(labelText: 'Password'),
validator: (input) => !input.contains('@')
? 'Please enter a valid email'
: null,
onSaved: (input) => _email = input,
obscureText: true,
),
),