Я создал это приложение для мобильных устройств и планшетов, и все работало отлично, пока я не столкнулся с этой проблемой. приложение отлично работает на мобильном телефоне, но на планшете появляется черный экран
это ошибка
I/flutter (28116): #717 ComponentElement.performRebuild (пакет:flutter/src/widgets/framework.dart:5322:16) I/flutter (28116): #718 Element.rebuild (пакет:flutter/src/widgets/framework.dart:5016:7) I/flutter (28116): #719 ProxyElement.update (пакет:flutter/src/widgets/framework.dart:5628:5) I/flutter (28116): #720 _InheritedNotifierElement.update (пакет:flutter/src/widgets/inherited_notifier.dart:107:11) I/flutter (28116): #721 Element.updateChild (пакет: flutter/src/widgets/framework.dart
import 'package:b2b_wholesale/res/routes_manager.dart'; импортировать «пакет: b2b_wholesale/utils/navigation_service.dart»; импортировать «пакет: b2b_wholesale/view_model/cart_model/cart_model.dart»; импортировать «пакет: b2b_wholesale/view_model/categories_view_model/categories_view_model.dart»; импортировать «пакет: b2b_wholesale/view_model/home_view_model/home_view_model.dart»; импортировать «пакет: b2b_wholesale/view_model/login_view_model/login_view_model.dart»; импортировать «пакет: флаттер/материал.dart»; импортировать «пакет: flutter_native_splash/flutter_native_splash.dart»; импортировать «пакет: провайдер/провайдер.dart»; пустая функция() { WidgetsBinding widgetsBinding = WidgetsFlutterBinding.ensureInitialized(); FlutterNativeSplash.preserve(widgetsBinding: widgetsBinding); запустить приложение( МоеПриложение(), ); } класс MyApp расширяет StatelessWidget { const MyApp({super.key}); @переопределить Сборка виджета (контекст BuildContext) { вернуть Мультипровайдер( провайдеры: [ ChangeNotifierProvider( create: (контекст BuildContext) => LoginViewModel()), ChangeNotifierProvider( create: (контекст BuildContext) => HomeViewModel()), ChangeNotifierProvider( create: (контекст BuildContext) => CategoryViewModel()), ChangeNotifierProvider(create: (контекст BuildContext) => Cart()), ], дочерний элемент: MaterialApp( navigatorKey: NavigationService().navigationKey, debugShowCheckedModeBanner: ложь, начальныйRoute: Routes.splashRoute, onGenerateRoute: RoutesManager.getRoute, ), ); } } когда я удаляю ChangeNotifierProvider(create: (BuildContext context) => Cart()), вход в систему работает, но когда я перехожу на главный экран, он выдает ошибку, потому что я этого не сделал не помещаю провайдера в свой основной файл
это мой файл cart_model.dart
import 'package:flutter/material.dart'; класс CarItem { Идентификатор строки; Строковый заголовок; двойная цена; целое количество; Строковое имя бренда; Строковое изображение; Артикул струн; CarItem({ требуется this.id, требуется это.title, требуется эта.цена, требуется это количество, требуется это.изображение, требуется this.brandName, требуется этот.sku, }); void decrementQuantity() { если (количество > 0) { количество--; } } пустое приращениеКоличество () { количество++; } } класс Корзина с ChangeNotifier { недействительный ClearCart () { предметы.очистить(); уведомить слушателей(); } двойной getTotalPrice() { двойной итог = 0,0; for (элемент CartItem в товарах) { итого += товар.цена * товар.количество; } return double.parse(total.toStringAsFixed(2)); } int getProductQuantity (идентификатор строки) { int index = items.indexWhere((item) => item.id == id); если (индекс >= 0) { вернуть элементы[индекс].количество; } вернуть 0; } void updateItemQuantity (String sku, int newQuantity) { int index = items.indexWhere((item) => item.sku == sku); если (индекс >= 0) { элементы[индекс].количество = новоеКоличество; если (предметы[индекс].количество item.id == id); если (индекс != -1) { если (предметы[индекс].количество > 1) { предметы[индекс].количество--; } еще { items.removeAt(индекс); } уведомить слушателей(); } } voidcrementQuantity(String sku) { int index = items.indexWhere((item) => item.sku == sku); если (индекс != -1) { элементы[индекс].incrementQuantity(); уведомить слушателей(); } } void decrementQuantity(String sku) { int index = items.indexWhere((item) => item.sku == sku); если (индекс != -1) { элементы[индекс].decrementQuantity(); если (предметы[индекс].количество item.id == идентификатор); если (индекс >= 0) { int totalDesiredQuantity = элементы[индекс].количество + количество; если (totalDesiredQuantity
Мобильная версия