在对话框中显示/隐藏数据

时间:2019-05-20 15:15:11

标签: flutter alertdialog

我有一个对话框,其中有一个TextField()和一个Button。按下它,我正在调用我的API,但是在此之前,我需要检查文本。由于一切正常,我想知道找到某种方法仅在对话框中显示错误文本。 经过所有的研究和工作,该对话框不会重新创建自己,因此即使布尔值大小写为真,也不会显示任何消息。

代码:

class ListViewElements extends StatefulWidget {
  @override
  _ListViewElementsState createState() => _ListViewElementsState();
}

class _ListViewElementsState extends State<ListViewElements> {
   bool isError = false;
   bool errorText = false;
   final TextEditingController _code = new TextEditingController();

   onSubmit(BuildContext context){
     if(this._code.text.isEmpty){
      setState(
        (){
          isError = true;
          errorText = 'Empty space';
        }
      );       
     } 
   }

   void registerDialog(BuildContext context){
    showDialog(
      context: context,
      barrierDismissible: false,
      builder: (BuildContext context){
        return AlertDialog(
          content: Column(
            children: <Widget>[
             Container(
              margin: EdgeInsets.fromLTRB(40.0, 0.0, 40.0, 10.0),
              child: TextField(
                textAlign: TextAlign.center,
                controller: this._code,
                maxLength: 4,
                textInputAction: TextInputAction.done,
                cursorColor: Theme.of(context).primaryColor,
                keyboardType: TextInputType.number,
                decoration: InputDecoration(
                hintText: 'Enter here',
                  counterText: '',
                )
              )
             ),
             isError == true ? Text(this.erroText) : Container()
            ]
          ),
          actions: <Widget>[
            FlatButton(
              child: new Text("Done", style: TextStyle(color: Theme.of(context).primaryColor, fontSize: 17.0)),
              onPressed: () {onSubmit(context);}
            )
          ]
        );
      }
    );

我原本打算显示一个SnackBar(),但是对于对话框,Scaffold.of()无法正常工作,因为构建器正在创建该盒子的新实例,因此无法调用。任何帮助,将不胜感激。谢谢:)

0 个答案:

没有答案