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

在下面的代码中,如果用户已经登录并启动了应用程序,它将显示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();
        }
      }
    }
评论
  • dnulla
    dnulla 回复

    代码应该像

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

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