Wie zu deaktivieren oder überschreiben Sie die Android "ZURÜCK" - button, im Flattern?
Gibt es eine Möglichkeit, Sie zu deaktivieren die Android-zurück-Taste, wenn auf einer bestimmten Seite?
class WakeUpApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: "Time To Wake Up ?",
home: new WakeUpHome(),
routes: <String, WidgetBuilder>{
'/pageOne': (BuildContext context) => new pageOne(),
'/pageTwo': (BuildContext context) => new pageTwo(),
},
);
}
}
Auf pageOne ich habe eine Taste zu gehen, um pageTwo:
new FloatingActionButton(
onPressed: () {
Navigator.of(context).pushNamed('/pageTwo');
},
)
Mein problem ist, dass wenn ich drücken Sie die Zurück-Pfeil am unteren Rand des android-Bildschirm, gehe ich zurück zu pageOne. Ich möchte diese Schaltfläche, um nicht zeigen, bis überhaupt.
Im Idealfall würde ich gerne haben, nicht möglich Weg von diesem Bildschirm, wenn der Benutzer zum Beispiel hält seine finger gedrückt auf dem Bildschirm für 5 Sekunden. (Ich bin versucht zu schreiben, eine App für Kleinkinder, und würde gerne nur die Eltern in der Lage sein zu navigieren aus dem jeweiligen Bildschirm).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Antwort ist
WillPopScope
. Es wird verhindert, dass die Seite von knallte durch das system. Sie werden immer noch in der Lage sein zu verwendenNavigator.of(context).pop()
Als Rémi Rousselet darauf hingewiesen,
WillPopScope
ist in der Regel der Weg zu gehen. Allerdings, wenn Sie die Entwicklung einer stateful-widget, das sollte reagieren auf die zurück-Taste direkt, Sie kann dieses verwenden:https://pub.dartlang.org/packages/back_button_interceptor
Ich bin dieses posting hier, falls es jemanden gibt, findet diese auf und wünscht, Sie würde finden Sie ein einfaches Beispiel
https://gist.github.com/b-cancel/0ca372017a25f0c120b14dfca3591aa5
Können Sie
Future.value(bool)
behandeln Sie die zurück-Taste.onWillPop: () async => _allow
.Future.value()
nennen.Verwenden Sie die Methode
popAndPushNamed
stattpushNamed
. Es erscheint die aktuelle route und schiebt die gewünschte route.Dass gesagt wird, Ihrer FAB-code sollte wie folgt Aussehen
Während Remi die Antwort richtig ist, in der Regel wollen Sie nicht einfach sperren Sie die zurück-Taste, aber möchten, dass ein Benutzer, um zu bestätigen Sie die Ausfahrt.
Können Sie machen es ähnlich, indem Sie immer eine Antwort aus der Bestätigungs-dialog, weil
onWillPop
eine Zukunft.Ich verwendet, Mixins und WillPopScope widget konnte einfach nicht bekommen den job zu erledigen für mich.
Dies ist der beste Ansatz, den ich fand, viel besser als WillPopScope meiner Meinung nach.
final bool canPop = ModalRoute.of(context)?.canPop ?? false;
Es verwendet, wie dies in appbar:
Die Methode, die Sie verwenden können, ist wie folgt:
Hoffe, das hilft. Dank