首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在flutter中用main.dart实现多个包?

如何在flutter中用main.dart实现多个包?
EN

Stack Overflow用户
提问于 2021-04-10 16:05:46
回答 1查看 145关注 0票数 0

我正在用flutter-android开发一个应用程序,为此,我正在使用screenUtil包,同时我也在检查设备连接状态(互联网)。现在,我的main.dart代码如下我初始化screenUtil的位置

代码语言:javascript
复制
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中使用的代码,用于获取小部件之间的连接状态:

代码语言:javascript
复制
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文件中同时使用这两个代码?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-10 16:41:51

示例:在flutter中以编程方式进行互联网连接检查。

你可以和我的代码同步。

下面详细介绍了我的源代码。只需复制并传递,然后用您的代码修改它就是main.dart文件:

代码语言:javascript
复制
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文件

代码语言:javascript
复制
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

祝你好运!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67032117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档