首页 > 解决方案 > 自定义类的方法中未显示 Flutter 小吃吧

问题描述

我需要在启动应用程序时显示小吃栏init以检查互联网的连接性。我在自定义类中的代码是:

import 'package:connectivity/connectivity.dart';
//import 'dart:async';
import 'package:flutter/material.dart';
import 'package:system_setting/system_setting.dart'; 

class Network{
   checkNetwork() async {
        var connectivityResult = await (Connectivity().checkConnectivity());
        if (connectivityResult == ConnectivityResult.none) {
          return 
          //print("no internet");
          SnackBar(
              content:  Text("Check internet Connectivity"),
              action: SnackBarAction(
                label: "Settings",
                onPressed: (){
                  SystemSetting.goto(SettingTarget.NOTIFICATION);
                },
              ),
            ); 
            //scaffoldKey.currentState.showSnackBar(snackbar);
            }
} 
}

并按如下方式访问该方法:

 @override
  void initState() {
    super.initState();
    //Network.checkNetwork();

    Network objnetwork = Network();
    objnetwork.checkNetwork();
 }

我返回了一个正确执行的打印语句,但是当返回一个像小吃栏或对话框这样的小部件时,它没有出现也没有显示任何异常。

标签: flutter

解决方案


发现答案是 using flutter_after_layoutwhich 在build函数完成后执行一个函数,以便SnackBar显示。有关如何在构建完成时运行方法的相关答案中找到了更多解释。


推荐阅读