首页 > 解决方案 > 当我尝试运行调试时,屏幕上没有显示任何内容

问题描述

我正在尝试创建一个启动画面,但是每当我在 vs 代码中运行“不调试运行”时,屏幕上除了默认屏幕之外什么都不会出现。我尝试创建一个导航器路线,将 Home 设置为不同的 HomePage 或 SplashScreen,但屏幕中仍然没有输出。我的 VSCode 有问题还是我的代码不够用?没有迹象表明我的代码中有错误,这就是为什么我想知道为什么屏幕上没有输出。

import 'dart:async';
import "package:flutter/material.dart"



void main() => runApp(MyApp());
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          theme: ThemeData(primarySwatch: Colors.red),
          home: LoginPage(),
        );
      }
    }
    
    class SplashScreen extends StatefulWidget {
      const SplashScreen({Key? key}) : super(key: key);
    
      @override
      _SplashScreenState createState() => _SplashScreenState();
    }
    
    class _SplashScreenState extends State<SplashScreen> {
      @override
      void initState() {
        // TODO: implement initState
        super.initState();
        Timer(Duration(seconds: 3), () {
          Navigator.of(context)
              .pushReplacement(MaterialPageRoute(builder: (_) => HomePage()));
        });
      }
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          backgroundColor: Colors.lightBlue,
          body: Center(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                //logo here 
                Image.asset(
                  'assets/images/idkbank_logo.png',
                  height: 120,
                ),
                SizedBox(
                  height: 20,
                ),
              ],
            ),
          ),
        );
      }
    }
    
    class HomePage extends StatefulWidget {
      const HomePage({Key? key}) : super(key: key);
    
      @override
      _HomePageState createState() => _HomePageState();
    }
    
    class _HomePageState extends State<HomePage> {
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            backgroundColor: Colors.lightBlue,
            title: Text("Welcome to IDKBank"),
          ),
          body: Container(child: Text("Home Page")),
        );
      }
    }

标签: flutter

解决方案


首先,您在;第二次导入结束时丢失了。其次,当你尝试在中使用上下文时initState,尝试使用WidgetsBinding.instance.addPostFrameCallback 在你的情况下,它应该是

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    WidgetsBinding.instance!.addPostFrameCallback((_) {
      Timer(Duration(seconds: 3), () {
        Navigator.of(context)
            .pushReplacement(MaterialPageRoute(builder: (_) => HomePage()));
      });
    });
  }

initState,build函数还没有执行,context有点空。这就是您在这里需要WidgetsBinding.instance.addPostFrameCallback的原因。


推荐阅读