有插曲和读取登录页面,然后进入管理页面颤动

时间:2020-03-14 02:44:51

标签: flutter dart

我试图使我的应用程序(如果已登录)将进入管理页面,但是在进入管理页面之前,需要一秒钟的时间并阅读登录页面。我该怎么办?如果我在输入之前先加载,什么时候/什么周期的加载将停止? 这是我的代码

class _MyAppState extends State<MyApp> {
  bool _isLoggedIn = false;

  @override
  void initState() {
    _checkIfLoggedIn();
    super.initState();
  }


  void _checkIfLoggedIn() async {
    // check if token is there
    SharedPreferences localStorage = await SharedPreferences.getInstance();
    var token = localStorage.getString('api_token');
    if(token!= null){
      setState(() {
        _isLoggedIn = true;
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    final textTheme = Theme.of(context).textTheme;
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.red,
        textTheme:GoogleFonts.latoTextTheme(textTheme).copyWith(
          body1: GoogleFonts.montserrat(textStyle: textTheme.body1),
        ),
      ),
      home:
      _isLoggedIn ?
      AdminMain()
          :
      LoginPage(),
    );
  }
}

1 个答案:

答案 0 :(得分:1)

我先加载,然后在初始化状态下先将_isLoggedin设置为true,然后将_isLoading设置为false

_isLoading ? loadingWidget(context)
      :
      (_isLoggedIn ?
      AdminMain()
          :
      LoginPage()
      ),