我试图使我的应用程序(如果已登录)将进入管理页面,但是在进入管理页面之前,需要一秒钟的时间并阅读登录页面。我该怎么办?如果我在输入之前先加载,什么时候/什么周期的加载将停止? 这是我的代码
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(),
);
}
}
答案 0 :(得分:1)
我先加载,然后在初始化状态下先将_isLoggedin设置为true,然后将_isLoading设置为false
_isLoading ? loadingWidget(context)
:
(_isLoggedIn ?
AdminMain()
:
LoginPage()
),