问题描述
我想在我的应用程序中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();
过去是用来掩盖您想要打电话给他的烤面包的。