我正在用flutter-android开发一个应用程序,为此,我正在使用screenUtil包,同时我也在检查设备连接状态(互联网)。现在,我的main.dart代码如下我初始化screenUtil的位置
void main() => (runApp(new MyApp()));
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ScreenUtilInit(
designSize: Size(360, 690),
allowFontScaling: false,
builder: () => MaterialApp(
debugShowCheckedModeBanner: false,
home: HomeScreen(),
),
);
}
}下面是我需要在main.dart中使用的代码,用于获取小部件之间的连接状态:
void main() => (runApp(new MyApp()));
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return StreamProvider<ConnectivityStatus>(
builder: (context) => ConnectivityService().connectionStatusController,
child: MaterialApp(
debugShowCheckedModeBanner: false,
home: HomeScreen(),
),
);
}如何在main.dart文件中同时使用这两个代码?
发布于 2021-04-10 16:41:51
示例:在flutter中以编程方式进行互联网连接检查。
你可以和我的代码同步。
下面详细介绍了我的源代码。只需复制并传递,然后用您的代码修改它就是main.dart文件:
import 'package:connectivity/connectivity.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
void main() => (runApp(new MyApp()));
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ScreenUtilInit(
designSize: Size(360, 690),
builder: () => MaterialApp(
debugShowCheckedModeBanner: false,
home: HomeScreen(),
),
);
}
}
class HomeScreen extends StatefulWidget {
@override
_HomeScreenState createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
var connectionStatus="";
@override
void initState() {
// TODO: implement initState
super.initState();
checkConnection();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Text(connectionStatus),
),
);
}
void checkConnection() async{
var connectivityResult = await (Connectivity().checkConnectivity());
if (connectivityResult == ConnectivityResult.mobile) {
// I am connected to a mobile network.
// write your code here;
connectionStatus="mobile data";
} else if (connectivityResult == ConnectivityResult.wifi) {
// I am connected to a wifi network.
// write your code here
connectionStatus="wifi data";
} else {
// where your code here
connectionStatus="no internet connection";
}
}
}和我的pubspec.yaml文件
name: flutter_app
description: A new Flutter application.
version: 1.0.0+1
environment:
sdk: ">=2.7.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^1.0.2
flutter_screenutil: ^5.0.0
data_connection_checker: ^0.3.4
connectivity: ^3.0.2
connectivity_platform_interface: ^2.0.1
dev_dependencies:
flutter_test:
sdk: flutter
flutter:
uses-material-design: true祝你好运!
https://stackoverflow.com/questions/67032117
复制相似问题