实际上,我是新手。这是我的启动画面代码。
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Meet Up',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: IntroScreen(),);
}
}
class IntroScreen extends StatefulWidget{
@override
_IntroScreenState createState() => _IntroScreenState();
}
class _IntroScreenState extends State<IntroScreen> {
@override
void initState() {
super.initState();
FirebaseAuth auth = FirebaseAuth.instance;
if (auth.currentUser != null)
{
Navigator.pushReplacement(
context,
MaterialPageRoute(builder: (context) => Home(uid: auth.currentUser.uid)),
);
}
else
{
Navigator.pushReplacement(
context,
MaterialPageRoute(builder: (context) => SignUp()),
);
}
}
@override
Widget build(BuildContext context) {
return new SplashScreen(
seconds: 5,
title: new Text('Welcome To Meet up!',
style: new TextStyle(
fontWeight: FontWeight.bold,
fontSize: 20.0
),),
image: Image.asset('assets/images/dart.png',fit:BoxFit.scaleDown),
backgroundColor: Colors.white,
styleTextUnderTheLoader: new TextStyle(),
photoSize: 100.0,
onClick: ()=>print("flutter"),
loaderColor: Colors.red
);
}
}
我遇到以下错误:
构建Builder时引发了以下断言: 在构建期间调用setState()或markNeedsBuild()。 无法将该叠加层窗口小部件标记为需要构建,因为该框架已经在 构建小部件的过程。可以在构建阶段将小部件标记为需要构建 仅当其祖先之一正在建造时。允许此异常是因为框架 在子代之前构建父窗口小部件,这意味着将始终构建脏后代。 否则,框架在此构建阶段可能不会访问此小部件。 调用setState()或markNeedsBuild()的小部件为: 叠加-[LabeledGlobalKey#5e01c]
请帮助我解决此错误。
答案 0 :(得分:0)
尝试在initState之内添加计时器,例如
@override
void initState() {
Timer(new Duration(seconds: 2), () {
.
.
.
});
super.initState();
}