Во флаттере я использую AlertDialog, в котором есть 2 кнопки действий Ok и Cancel, при нажатии на Ok я хочу go на новый экран и завершить текущий экран? - PullRequest
0 голосов
/ 28 мая 2020
                  actions: <Widget>[
                    FlatButton(
                      onPressed: () { 
                        Navigator.of(context).pop();
                      },
                    child: Text('Cancel'),
                    ),
                    FlatButton(
                      onPressed: () {
                        Navigator.pushNamed(context, TyreScreen.id);
                      },
                      child: Text('Ok'),
                    ),

После нажатия закройте текущий экран, пожалуйста, помогите, я хочу go перейти на новый экран и завершить текущий экран ??

Ответы [ 3 ]

2 голосов
/ 28 мая 2020

Попробуй сделать Navigator.pushReplacement(context, newRoute);

1 голос
/ 28 мая 2020

Думаю, вам нужно дважды вызвать всплывающее окно навигатора, один для диалогового окна, а второй для текущего экрана.

FlatButton(
  onPressed: () {
    Navigator.of(context).pop(); //Will close the dialog
    Navigator.of(context).pop(); //Will close the current screen
    Navigator.pushNamed(context, TyreScreen.id); //Will push a new screen
  },
  child: Text('Ok'),
),
1 голос
/ 28 мая 2020

попробуйте это

actions: <Widget>[
                FlatButton(
                  onPressed: () { 
                    Navigator.of(context).pop();
                  },
                child: Text('Cancel'),
                ),
                FlatButton(
                  onPressed: () {
                    Navigator.pushNamed(context, TyreScreen.id).then((value) => Navigator.pop(context));
                  },
                  child: Text('Ok'),
                ),
...