class MainScreen extends StatelessWidget {
const MainScreen({super.key});
@override
Widget build(BuildContext context) {
return PopScope(
canPop: false, // false or true
onPopInvoked: (bool didPop) {
Navigator.popUntil(
context, ModalRoute.withName(RouterHelper.logInScreen));
},
child: Scaffold(
backgroundColor: Colors.white,
appBar: AppBar(
backgroundColor: Colors.white,
elevation: 0,
),
body: SafeArea(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(
width: 312,
child: 'Main Screeen'.toText(
textAlign: TextAlign.center,
maxLine: 2,
fontSize: 18,
fontFamily: poppinsMedium,
color:Colors.black,
),
),
],
),
),
),
);
}
}
当我们使用 canPop false 或 true 时,两者都有相同的情况,即 popUntil 在 onPopInvoked 中不起作用。
我尝试更改 canPop: true,但仍然得到相同的结果,这会导致应用程序崩溃。并且路由没有被反向路由。我还使用 canPop: false 并 write
canPop: false,
onPopInvoked: (bool didPop) {
Navigator.pop(context);
}
在 PopScope 中同样导致应用程序崩溃。我无法在 PopScope 中使用 Navigator.pop 和 Navigator.popUntil
不允许系统后退按钮。
onWillPop: () async {
Navigator.popUntil(context, ModalRoute.withName(RouterHelper.logInScreen));
return false;
},