【发布时间】:2021-02-16 22:11:06
【问题描述】:
我为我的应用制作了一个徽标屏幕,将用户重定向到适当的位置(如果用户已登录,则为主屏幕,如果未登录,则为欢迎/启动屏幕)。到达主屏幕后,我可以通过按 Android 手机上的后退按钮返回上一个屏幕。我想阻止用户返回徽标屏幕。
我尝试过的事情:
WillPopScope() 与 onWillPop 返回 false
我的徽标屏幕代码:
class LogoScreen extends StatefulWidget {
@override
_LogoScreenState createState() => _LogoScreenState();
}
class _LogoScreenState extends State<LogoScreen> {
var preferences;
@override
void initState() {
super.initState();
startTimer();
}
@override
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: () async => false,
child: Scaffold(
backgroundColor: Colors.white,
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Image.asset(
"assets/images/g1177.png",
scale: 10.0,
),
],
),
),
),
);
}
startTimer() {
var _duration = Duration(milliseconds: 2000);
return Timer(_duration, navigate);
}
navigate() async {
SharedPreferences preferences = await SharedPreferences.getInstance();
if (preferences.getBool("is_logged_in") == true) {
Navigator.push(context, MaterialPageRoute(builder: (context) {
return HomeScreen();
}));
} else {
Navigator.push(context, MaterialPageRoute(builder: (context) {
return SplashScreen();
}));
}
}
}
为什么这种方法在我的设备上不起作用?
【问题讨论】: