flutter - 在 Flutter 中通过 Connectivity 中的小部件检查
问题描述
我想在我的应用程序中实现互联网连接检查,我使用了官方连接插件,它非常适合显示字符串值,但我不想在屏幕上显示字符串值,而是想显示不同的小部件以用于连接和断开连接。
我在用什么
//
Widget result;
//
body: Container(
alignment: Alignment.center,
child: result != null ?
result : Text("unknown", style :
TextStyle(fontSize: 30,fontWeight: FontWeight.bold),
),
void checkStatus(){
Connectivity().onConnectivityChanged.listen((ConnectivityResult result) {
if(
result == ConnectivityResult.mobile ||
result == ConnectivityResult.wifi){
Text("Connected", style:TextStyle(color:Colors.red));
} else {
Text("No InterNet", style:TextStyle(color:Colors.red));
}
});
}
@override
void initState() {
super.initState();
checkStatus();
}
我正在获得“未知”的价值
解决方案
试试这个
class Sample extends StatefulWidget {
@override
_SampleState createState() => _SampleState();
}
class _SampleState extends State<Sample> {
Widget result;
@override
void initState() {
super.initState();
checkStatus();
}
void checkStatus() async {
var connectivityResult = await (Connectivity().checkConnectivity());
if (connectivityResult == ConnectivityResult.mobile) {
result = Text("Connected to Mobile Network");
setState(() {});
} else if (connectivityResult == ConnectivityResult.wifi) {
result = Text("Connected to WiFi");
print("Connected to WiFi");
setState(() {});
} else {
result = Text("Unable to connect. Please Check Internet Connection");
setState(() {});
print("Unable to connect. Please Check Internet Connection");
}
}
@override
Widget build(BuildContext context) {
return Center(child: result);
}
}
推荐阅读
- python - 邮件地址和姓名之间的单词相似度
- angular - Angular 7 项目在 Internet Explorer 11 中不起作用
- python-3.x - “如何读取文件并将一个文件值与另一个文件索引相乘”
- c# - .net core中动态JSON解析
- c# - 如何将不同的 selectedindex 组合框值插入数据库?
- dart - Flutter - 如何在 ListView.separated 的顶部插入有状态小部件?
- mysql - WHERE x IN 适用于单个值,而不适用于 json 上的多个值
- javascript - 向左滚动动画将不再起作用
- memory - 缓存线大小会影响内存访问延迟吗?
- python - 广播自定义功能