#flutter
#трепетать
Вопрос:
import 'dart:async'; import 'package:flutter/material.dart'; import 'package:nartaqi/no_connection_page.dart'; import 'package:nartaqi/notifications.dart'; import 'body.dart'; import 'connectionStatusSingleton.dart'; import 'constants.dart'; class HomePage extends StatefulWidget { const HomePage({ Key? key, }) : super(key: key); @override _HomePageState createState() =gt; _HomePageState(); } class _HomePageState extends Statelt;HomePagegt; { bool isOffline = false; StreamSubscription _connectionChangeStream; @override initState() { super.initState(); ConnectionStatusSingleton connectionStatus = ConnectionStatusSingleton.getInstance(); _connectionChangeStream = connectionStatus.connectionChange.listen(connectionChanged); } void connectionChanged(dynamic hasConnection) { setState(() { isOffline = !hasConnection; }); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( backgroundColor: kPrimaryColor, elevation: 0.0, leading: IconButton( onPressed: () { Navigator.push( context, MaterialPageRoute( builder: (context) =gt; const NotificationPage(),),); }, icon: const Icon( Icons.notifications, color: Color(0xFFF9A826), ), ), actions: const [ Padding( padding: EdgeInsets.symmetric(horizontal: 10.0, vertical: 16.0), child: Text( 'الرئيسية', style: kHomeScreenTextStyle, ), ), ], ), body: isOffline? NoConnectionPage():Body(), ); }
я получаю ошибку, когда инициализирую с опозданием строку(StreamSubscription _connectionChangeStream;), также _connectionChangeStream становится серым, значение нигде не используется, я на самом деле пытаюсь подключить свое приложение к Интернету и проверить, есть ли подключение к Интернету или нет, по-видимому, пакет подключения сообщает вам только о том, подключены ли вы к сети, он не проверяет наличие доступа в Интернет
Ответ №1:
Чтобы устранить эту ошибку initialize
, вам нужно либо выполнить ее _connectionChangeStream
, либо сделать это nullable
, как показано ниже
StreamSubscription? _connectionChangeStream;
Комментарии:
1. знаете ли вы способ проверить наличие доступа в Интернет в приложении flutter, вы видите, что я хочу, чтобы мое тело зависело от статуса подключения либо было body: Body (), когда в сети, либо body: NoConnectionPage(), когда в автономном режиме.
2. Я думаю, что вы уже используете пакет подключения для этого
3. да, но он не проверяет доступ к данным, только если вы подключены к Wi-Fi или мобильному телефону, он действует так, как будто он в Сети, даже если нет доступа в Интернет