Android studio 颤振:模糊文本,未定义参数

Android studio 颤振:模糊文本,未定义参数,android-studio,flutter,dart,Android Studio,Flutter,Dart,我最近开始学习Flitter,现在正在制作Instagram克隆。我正试图使用“obclusterText”隐藏密码,但收到一个错误:未定义命名参数“obclusterText” 我在网上搜索了一会儿,但找不到解决办法 这是我第一次在这里发帖,如果我遗漏了什么或者把它放错了地方,请告诉我 谢谢!:) import'包装:flift/cupertino.dart'; 进口“包装:颤振/材料.省道”; 类LoginScreen扩展StatefulWidget{ @凌驾 _LoginsScreenSt

我最近开始学习Flitter,现在正在制作Instagram克隆。我正试图使用“obclusterText”隐藏密码,但收到一个错误:未定义命名参数“obclusterText”

我在网上搜索了一会儿,但找不到解决办法

这是我第一次在这里发帖,如果我遗漏了什么或者把它放错了地方,请告诉我

谢谢!:)

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,
  ),
),