我有一个登录屏幕,在我的表单按钮中,我进行了检查,然后调用Shared Preferences来设置登录标志,而initState我调用了一种方法来检查值并重定向到homeScreen。现在一切顺利,但是我能够看到登录表单大约一秒钟,然后我被重定向到首页。我希望完全看不到登录表单。我怎样才能做到这一点? 这是initState方法的内容:
I am larry
答案 0 :(得分:1)
请勿将登录屏幕设置为AppWidget上的主屏幕。
代替此操作,创建一个LoadingScreen或SplashScreen并在此处检查登录状态。
class LoadingScreen extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<LoadingScreen> {
@override
Widget build(BuildContext context) {
_checkLogin(context);
return Scaffold(body: Center(child: CircularProgressIndicator()));
}
_checkLogin(BuildContext context) async {
// do what you want with await functions
if (condition) {
Navigator.push(
context, MaterialPageRoute(builder: (context) => HomeScreen()));
} else {
Navigator.push(
context, MaterialPageRoute(builder: (context) => LoginScreen()));
}
}
}