如何添加加载屏幕以掩盖应用程序启动时显示的登录页面?

问题描述 投票:1回答:1

在下面的代码中,如果用户已经登录并启动了应用程序,它将显示SignIn()页面一秒钟,然后转到HomeScreen()。如果用户已经登录,如何将用户直接带到HomeScreen()而不显示SignIn()页面?当用户的身份验证状态通过验证时,我试图显示加载屏幕的时间,但仍显示SignIn()屏幕一秒钟或更短时间。

class Wrapper extends StatefulWidget {
      @override
      _WrapperState createState() => _WrapperState();
    }

    class _WrapperState extends State<Wrapper> {
      bool loading = true;

      @override
      Widget build(BuildContext context) {
        final user = Provider.of<User>(context);

        //return either HomeScreen or SignIn widget.

        if (user != null) {
           setState ((){
              loading = false;
           });

          return loading ? Loading() : HomeScreen();
        } else {
          return SignIn();
        }
      }
    }
flutter flutter-layout
1个回答
0
投票

代码应为

  if(loginStatus != null) { // This you must get from somewhere
     SignIn(); 
   }
   else if(user == null) {
       Loading(); 
    } else {
       HomeScreen(); 
    }

我认为您必须具有是否执行设备登录的状态,基于此添加另一个条件并显示“登录”屏幕。

© www.soinside.com 2019 - 2024. All rights reserved.