成功数据后如何显示对话框

问题描述

我想在我的应用程序中add/ update data之后显示对话框“ 添加成功!”。我尝试使用显示对话框,但是它不起作用。所以我需要你的帮助

添加主管班级:

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:Flutter/cupertino.dart';
import 'package:Flutter/material.dart';
import 'package:finalyearproject/model/NewUser.dart';
import 'package:finalyearproject/service/database.dart';




class AddSupervisor extends StatefulWidget {


  @override
  _AddSupervisorState createState() => _AddSupervisorState();
}

class _AddSupervisorState extends State<AddSupervisor> {

  //text field
  String name = ' ';
  String email = ' ';
  String uniqueID = ' ';
  String phone = ' ';
  String error;
  String id = Firestore.instance.collection('Supervisor').document().documentID;
  final GlobalKey<FormState> _formKey = GlobalKey();

  @override
  Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: Text('Supervisor'),backgroundColor: Colors.redAccent,),body: Form(
            key: _formKey,child: SingleChildScrollView(
              padding: const EdgeInsets.all(16.0),child: Column(
                crossAxisAlignment: CrossAxisAlignment.end,children: <Widget>[
                  SizedBox(height: 25.0),TextFormField(
                    decoration: Inputdecoration(
                        hintText: 'Name',prefixIcon: Icon(Icons.person),border: OutlineInputBorder(borderRadius: BorderRadius.circular(5))),keyboardType: TextInputType.text,validator: (value) => value.isEmpty ? 'Name cannot be empty!': null,onChanged: (value) {
                      setState(() => name = value);
                    },SizedBox(height: 10.0),TextFormField(
                    decoration: Inputdecoration(
                        hintText: 'Email',prefixIcon: Icon(Icons.email),keyboardType: TextInputType.emailAddress,validator: (value) => value.isEmpty ? 'Email cannot be empty!': null,onChanged: (value) {
                      setState(() => email = value);
                    },TextFormField(
                    decoration: Inputdecoration(
                        hintText: 'Number Phone',prefixIcon: Icon(Icons.phone),keyboardType: TextInputType.number,validator: (value) => value.isEmpty ? 'Number Phone cannot be empty!': null,onChanged: (value) {
                      setState(() => phone = value);
                    },TextFormField(
                    decoration: Inputdecoration(
                        hintText: 'Unique ID ',prefixIcon: Icon(Icons.perm_contact_calendar),validator: (value) => value.isEmpty ? 'Ic number cannot be empty!': null,onChanged: (value) {
                          setState(() => uniqueID = value);
                    },const SizedBox(height: 20.0),RaisedButton(
                      color: Colors.redAccent,textColor: Colors.black,child: Text("Save"),onpressed: () async {
                        if(_formKey.currentState.validate()){
                          DatabaseService().addSupervisor(NewUser(name: name,email: email,uniqueID: uniqueID,nophone: phone,id: id));
                          Navigator.pop(context); 
                          _formKey.currentState.save();
                        } else {
                          print("Must be complete all!");
                        }
                      }
                  ),],);
    }
}

我想将显示对话框放在行导航器弹出窗口中,但是我仍然不知道如何在此处放置显示对话框。有任何想法吗?真的需要您的帮助。

解决方法

Future<bool> alertDialog( BuildContext context) {
  return showDialog(
      context: context,builder: (BuildContext context) {
        return AlertDialog(
          title: Text('Done'),content: Text('Add Success'),actions: <Widget>[
            FlatButton(
              child: Text('Ok'),onPressed: () {
                Navigator.pop(context);
              },),],);
      });
}

,每当要调用它时,请使用以下代码:

 await alertDialog(
    context,);

甚至可以使用FLutterToast软件包

import 'package:fluttertoast/fluttertoast.dart';
Future<bool> toast(String message) {
  Fluttertoast.cancel();
  return Fluttertoast.showToast(
      msg: message,toastLength: Toast.LENGTH_LONG,gravity: ToastGravity.BOTTOM,timeInSecForIos: 4,backgroundColor: Colors.redAccent,textColor: Colors.white,fontSize: 15.0);
}

以及何时要为成功的连接呼叫功能显示祝酒词

toast("Success Data");

请注意

Fluttertoast.cancel();

过去是用来掩盖您想要打电话给他的烤面包的。