Используйте back_button_interceptor , который был опубликован несколько дней как go. это помогает переопределить кнопку возврата устройства
Синтаксис для использования back_button_interceptor:
@override
void initState() {
super.initState();
BackButtonInterceptor.add(myInterceptor);
}
@override
void dispose() {
BackButtonInterceptor.remove(myInterceptor);
super.dispose();
}
bool myInterceptor(bool stopDefaultButtonEvent) {
print("BACK BUTTON!"); // Do some stuff.
return true;
}
вот как вы можете переопределить фактическую кнопку возврата устройства
теперь посмотрим на пример
import 'package:back_button_interceptor/back_button_interceptor.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class MyWidget extends StatefulWidget {
@override
ListTab createState() => ListTab();
}
class ListTab extends State<MyWidget> {
void initState() {
super.initState();
BackButtonInterceptor.add(myInterceptor);
}
@override
void dispose() {
BackButtonInterceptor.remove(myInterceptor);
super.dispose();
}
bool myInterceptor(bool stopDefaultButtonEvent) {
Navigator.push(context,
MaterialPageRoute(builder: (context)=>App())
);
return true;
}
@override
Widget build(BuildContext context) {
return new Scaffold(
body: new Center(
child: new Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Container(
child: new Text(
"USER_PAGE",
),
),
])));
}
}
: D done !!