一旦我填写表格并将其提交到Firebase,代码会将我导航到我的主页,但是一旦我按下Android手机的“后退”按钮,它将发送用户到具有所有先前填写的数据的上一个表格页面。我已经厌倦了使用 WillPopScope 功能禁用我的android手机的后退按钮,但没有响应。
我还使用 willpopscope 创建了一个函数,并在main中调用了该函数,但没有结果。
@override
Widget build(BuildContext context) {
return new WillPopScope(
onWillPop: () async =>false,
child: new Scaffold(
appBar: new AppBar(
title: new Text('Welcome'),
actions: <Widget>[
_onbackpressed(), //tried disabling the back button by calling this fucntion
new FlatButton(
child: new Text('Logout',
style: new TextStyle(fontSize: 17.0, color: Colors.white)),
onPressed: _signOut)
],
),
body: _showTodoList(),
floatingActionButton: FloatingActionButton(
onPressed: () {
signupPage(context);
},
tooltip: 'Increment',
child: Icon(Icons.add),
)
),
);
}
//extra funtion to disable the back button-
_onbackpressed(){
return new WillPopScope(
onWillPop: () async =>false,
child: new Container(width: 0.0,height: 0.0,),
);
}
//function used to send the user form to server
RaisedButton(
elevation: 7.0,
child: Text('Upload'),
textColor: Colors.white,
color: Colors.blue,
onPressed: () {
final StorageReference firebaseStorageRef =
FirebaseStorage.instance.ref().child(Username);
final StorageUploadTask task =
firebaseStorageRef.putFile(_image);
success(context);
},
),
//where success is a fuction
success(BuildContext context){
Navigator.of(context)
.push(MaterialPageRoute(builder:(context)=>Redirect() ));
}
答案 0 :(得分:0)
应该在用户提交表单时弹出窗口,而不是在用户提交表单时按下新屏幕:
success(BuildContext context){
Navigator.of(context).pop();
}
其原因是因为您有一堆屏幕。当一个用户用完后,您应该将他发送回所需的位置,而不是将另一个放在顶部,而将已用过的一个留在堆栈上。