flutter - 自定义类的方法中未显示 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();
}
我返回了一个正确执行的打印语句,但是当返回一个像小吃栏或对话框这样的小部件时,它没有出现也没有显示任何异常。
解决方案
发现答案是 using flutter_after_layout
which 在build
函数完成后执行一个函数,以便SnackBar
显示。有关如何在构建完成时运行方法的相关答案中找到了更多解释。
推荐阅读
- c - 如何编译luaJit的c字节码
- python - 在python中打破if语句
- python - Discord bot 不返回所有成员
- javascript - 如何从 react-native-maps 中获取折线的长度(公里)?
- javascript - 我可以检测用户何时通过直接链接或 react-router 进入我的网站吗?
- cookies - google colab 上的 RVL-CDIP 数据集
- prometheus - 如何从 2 个费率之和计算普罗米修斯百分比
- forge - 如何在外部系统中使用第三方 javascript 控件?
- android - Firebase Crashlytics SDK 更新不起作用。报告未显示在控制台中
- java - 在 java/spring 中为多个用例验证同一个 bean 的最佳方法是什么?