gpt4 book ai didi

Flutter 立即导航到屏幕

转载 作者:IT王子 更新时间:2023-10-29 06:33:43 26 4
gpt4 key购买 nike

我有一个登录屏幕,在我的表单按钮中,我进行检查,然后调用 Shared Preferences 来设置登录标志,而 initState 我调用一个方法来检查值并重定向到主屏幕。现在一切顺利,但我能看到登录表单一秒钟左右,然后我被重定向到家。我希望根本看不到登录表单。我怎样才能做到这一点?下面是 initState 方法的内容:

_loadLoginStatus() async {
final SharedPreferences prefs = await SharedPreferences.getInstance();
setState(() {
_loginStatus =prefs.getBool('loginStatus') ?? false;
if(_loginStatus == true){
Navigator.push(
context, MaterialPageRoute(builder: (context) => HomeScreen()));
}
});
}

最佳答案

不要将登录屏幕设置为 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()));
}
}
}

关于Flutter 立即导航到屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53073578/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com