Не удалось перейти со страницы на страницу — Navigator.push — FlutterIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Не удалось перейти со страницы на страницу — Navigator.push — Flutter

Сообщение Anonymous »


Я работаю над приложением, у которого есть домашняя страница и страница настроек, поэтому я хочу перемещаться между ними с помощью кнопки со значком на панели приложения, поэтому я использовал метод navigator.push, но приложение зависает и ничего не делает, и когда я перезапускаю, это дает мне эту ошибку:

══╡ ИСКЛЮЧЕНИЕ, ОБНАРУЖЕННОЕ БИБЛИОТЕКОЙ ПЛАНИРОВЩИКА ╞═════════════════════════════ ══════ ══════════════════════ Во время обратного вызова планировщика было выдано следующее утверждение: В поддереве есть несколько героев, имеющих один и тот же тег. Внутри каждого поддерева, для которого необходимо анимировать героев (т. поддерево PageRoute), каждый герой должен иметь уникальный ненулевой тег. В этом случае у нескольких героев был следующий тег: ├# Вот поддерево одного из героев-нарушителей: Герой Когда было выброшено исключение, стек был таким: #0 Hero._allHeroesFor.inviteHero. ( п а с к а г Это : ж л в т т Это р / с р с / В я д г Это т с / час Это р О Это с . д а р т : 2 7 8 : 1 1 ) # 1 ЧАС Это р О . _ а л л ЧАС Это р О Это с Ф О р . я н в я т Это ЧАС Это р О ( п а с к а г Это : ж л в т т Это р / с р с / В я д г Это т с / час Это р О Это с . д а р т : 2 8 я : 8 ) # 2 ЧАС Это р О . _ а л л ЧАС Это р О Это с Ф О р . в я с я т О р ( п а с к а г Это : ж л в т т Это р / с р с / В я д г Это т с / час Это р О Это с . д а р т : 3 0 7 : 1 1 ) # 3 С я н г л Это С час я л д р Это н д Это р О б дж Это с т И л Это м Это н т . в я с я т С час я л д р Это н ( п а с к а г Это : ж л в т т Это р / с р с / В я д г Это т с / ж р а м Это В О р к . д а р т : 6 4 2 0 : 1 4 ) # 4 ЧАС Это р О . _ а л л ЧАС Это р О Это с Ф О р . в я с я т О р ( п а с к а г Это : ж л в т т Это р / с р с / В я д г Это т с / час Это р О Это с . д а р т : 3 2 2 : 1 5 ) # 5 С О м п О н Это н т И л Это м Это н т . в я с я т С час я л д р Это н ( п а с к а г Это : ж л в т т Это р / с р с / В я д г Это т с / ж р а м Это В О р к . д а р т : 5 3 4 я : 1 4 ) # 6 ЧАС Это р О . _ а л л ЧАС Это р О Это с Ф О р . в я с я т О р ( п а с к а г Это : ж л в т т Это р / с р с / В я д г Это т с / час Это р О Это с . д а р т : 3 2 2 : 1 5 ) # 7 М в л т я С час я л д р Это н д Это р О б дж Это с т И л Это м Это н т . в я с я т С час я л д р Это н ( п а с к а г Это : ж л в т т Это р / с р с / В я д г Это т с / ж р а м Это В О р к . д а р т : 6 5 3 2 : 1 6 ) # 8 ЧАС Это р О . _ а л л ЧАС Это р О Это с Ф О р . в я с я т О р ( п а с к а г Это : ж л в т т Это р / с р с / В я д г Это т с / час Это р О Это с . д а р т : 3 2 2 : 1 5 ) # я С я н г л Это С час я л д р Это н д Это р О б дж Это с т И л Это м Это н т . в я с я т С час я л д р Это н ( п а с к а г Это : ж л в т т Это р / с р с / В я д г Это т с / ж р а м Это В О р к . д а р т : 6 4 2 0 : 1 4 ) # 1 0 ЧАС Это р О . _ а л л ЧАС Это р О Это с Ф О р . в я с я т О р ( п а с к а г Это : ж л в т т Это р / с р с / В я д г Это т с / час Это р О Это с . д а р т : 3 2 2 : 1 5 ) # 1 1 С О м п О н Это н т И л Это м Это н т . в я с я т С час я л д р Это н ( п а с к а г Это : ж л в т т Это р / с р с / В я д г Это т с / ж р а м Это В О р к . д а р т : 5 3 4 я : 1 4 ) # 1 2 ЧАС Это р О . _ а л л ЧАС Это р О Это с Ф О р . в я с я т О р ( п а с к а г Это : ж л в т т Это р / с р с / В я д г Это т с / час Это р О Это с . д а р т : 3 2 2 : 1 5 ) # 1 3 С я н г л Это С час я л д р Это н д Это р О б дж Это с т И л Это м Это н т . в я с я т С час я л д р Это н ( п а с к а г Это : ж л в т т Это р / с р с / В я д г Это т с / ж р а м Это В О р к . д а р т:6420:14) # 14 Hero._allHeroesFor.visitor (пакет: flutter/src/widgets/heroes.dart:322:15) # 15 ComponentElement.visitChildren (пакет: flutter/src/widgets/framework.dart:5349:14) # 16 Hero._allHeroesFor.visitor (пакет: flutter/src/widgets/heroes.dart:322:15) # 17 MultiChildRenderObjectElement.visitChildren (пакет: flutter/src/widgets/framework.dart:6532:16) # 18 Hero._allHeroesFor.visitor (пакет: flutter/src/widgets/heroes.dart:322:15) # 19 ComponentElement.visitChildren (пакет: flutter/src/widgets/framework.dart:5349:14) #20 Hero._allHeroesFor.visitor (пакет:flutter/src/widgets/heroes.dart:322:15) # 21 ComponentElement.visitChildren (пакет: flutter/src/widgets/framework.dart:5349:14) # 22 Hero._allHeroesFor.visitor (пакет: flutter/src/widgets/heroes.dart:322:15) # 23 ComponentElement.visitChildren (пакет: flutter/src/widgets/framework.dart:5349:14) # 24 Hero._allHeroesFor.visitor (пакет: flutter/src/widgets/heroes.dart:322:15) # 25 MultiChildRenderObjectElement.visitChildren (пакет: flutter/src/widgets/framework.dart:6532:16) #26 Hero._allHeroesFor.visitor (пакет:flutter/src/widgets/heroes.dart:322:15) #27 ComponentElement.visitChildren (пакет:flutter/src/widgets/framework.dart:5349:14) #28 Hero._allHeroesFor.visitor (пакет:flutter/src/widgets/heroes.dart:322:15) #29 ComponentElement.visitChildren (пакет:flutter/src/widgets/framework.dart:5349:14) #30 Hero._allHeroesFor.visitor (пакет:flutter/src/widgets/heroes.dart:322:15) #31 ComponentElement.visitChildren (пакет:flutter/src/widgets/framework.dart:5349:14) #32 Hero._allHeroesFor.visitor (пакет:flutter/src/widgets/heroes.dart:322:15) #33 ComponentElement.visitChildren (пакет:flutter/src/widgets/framework.dart:5349:14) #34 Hero._allHeroesFor.visitor (пакет:flutter/src/widgets/heroes.dart:322:15) #35 ComponentElement.visitChildren (пакет:flutter/src/widgets/framework.dart:5349:14) #36 Hero._allHeroesFor.visitor (пакет:flutter/src/widgets/heroes.dart:322:15) #37 SingleChildRenderObjectElement.visitChildren (пакет:flutter/src/widgets/framework.dart:6420:14) #38 Hero._allHeroesFor.visitor (пакет:flutter/src/widgets/heroes.dart:322:15) #39 ComponentElement.visitChildren (пакет:flutter/src/widgets/framework.dart:5349:14) #40 Hero._allHeroesFor.visitor (пакет:flutter/src/widgets/heroes.dart:322:15) #41 SingleChildRenderObjectElement.visitChildren (пакет:flutter/src/widgets/framework.dart:6420:14) #42 Hero._allHeroesFor.visitor (пакет:flutter/src/widgets/heroes.dart:322:15) #43 ComponentElement.visitChildren (пакет:flutter/src/widgets/framework.dart:5349:14) #44 Hero._allHeroesFor.visitor (пакет:flutter/src/widgets/heroes.dart:322:15) #45 ComponentElement.visitChildren (пакет:flutter/src/widgets/framework.dart:5349:14) #46 Hero._allHeroesFor.visitor (пакет:flutter/src/widgets/heroes.dart:322:15) #47 ComponentElement.visitChildren (пакет:flutter/src/widgets/framework.dart:5349:14) #48 Hero._allHeroesFor.visitor (пакет:flutter/src/widgets/heroes.dart:322:15) #49 ComponentElement.visitChildren (пакет:flutter/src/widgets/framework.dart:5349:14) #50 Hero._allHeroesFor.visitor (пакет:flutter/src/widgets/heroes.dart:322:15) #51 ComponentElement.visitChildren (пакет:flutter/src/widgets/framework.dart:5349:14) #52 Hero._allHeroesFor.visitor (пакет:flutter/src/widgets/heroes.dart:322:15) #53 ComponentElement.visitChildren (пакет:flutter/src/widgets/framework.dart:5349:14) #54 Hero._allHeroesFor.visitor (пакет:flutter/src/widgets/heroes.dart:322:15) #55 ComponentElement.visitChildren (пакет:flutter/src/widgets/framework.dart:5349:14) #56 Hero._allHeroesFor.visitor (пакет:flutter/src/widgets/heroes.dart:322:15) #57 ComponentElement.visitChildren (пакет:flutter/src/widgets/framework.dart:5349:14) #58 Hero._allHeroesFor.visitor (пакет:flutter/src/widgets/heroes.dart:322:15) #59 ComponentElement.visitChildren (пакет:flutter/src/widgets/framework.dart:5349:14) #60 Hero._allHeroesFor.visitor (пакет:flutter/src/widgets/heroes.dart:322:15) #61 SingleChildRenderObjectElement.visitChildren (пакет:flutter/src/widgets/framework.dart:6420:14) #62 Hero._allHeroesFor.visitor (пакет:flutter/src/widgets/heroes.dart:322:15) #63 ComponentElement.visitChildren (пакет:flutter/src/widgets/framework.dart:5349:14) #64 Hero._allHeroesFor.visitor (пакет:flutter/src/widgets/heroes.dart:322:15) #65 SingleChildRenderObjectElement.visitChildren (пакет:flutter/src/widgets/framework.dart:6420:14) #66 Element.visitChildElements (пакет:flutter/src/widgets/framework.dart:3581:5) #67 Hero._allHeroesFor (пакет: flutter/src/widgets/heroes.dart:325:13) #68 HeroController._startHeroTransition (пакет: flutter/src/widgets/heroes.dart:932:14) #69 HeroController._maybeStartHeroTransition. (пакет: flutter/src/widgets/heroes.dart:891:9) #70 SchedulerBinding._invokeFrameCallback (пакет: flutter/src/scheduler/binding.dart:1297:15) #71 SchedulerBinding.handleDrawFrame (пакет:flutter/src/scheduler/binding.dart:1236:9) #72 SchedulerBinding._handleDrawFrame (пакет: flutter/src/scheduler/binding.dart:1085:5) #73 _invoke (dart:ui/hooks.dart:170:13) #74 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:401:5) #75 _drawFrame (dart:ui/hooks.dart:140:31) ═════════════════════════════════════════ ═════════ ═════════════════════════════════════════ ═════════ Перезапустил приложение через 1972 мс. у меня есть два файла кода:

main.dart:

import 'package:flutter/material.dart'; импортировать «пакет: flutter_tts/flutter_tts.dart»; импортировать «settings.dart»; пустая функция() { запуститьApp(MyApp()); } класс MyApp расширяет StatelessWidget { @переопределить Сборка виджета (контекст BuildContext) { вернуть MaterialApp( тема: ThemeData( useMaterial3: ложь, ), debugShowCheckedModeBanner: ложь, дом: MainSt(), ); } } класс MainSt расширяет StatefulWidget { const MainSt({Key? key}) : super(key: key); @переопределить State createState() => _MainStState(); } окончательный addController = TextEditingController(); Список карточекList = []; класс _MainStState расширяет State { вар tts_delay = 1; вар tts_word_repeat = 2; вар tts_speach_rate = 0,5; FlutterTts flutterTts = FlutterTts(); Future textToS(String text) async { await flutterTts.setLanguage("en-US"); дождитесь flutterTts.setVolume(0.5); дождитесь flutterTts.setSpeechRate(tts_speach_rate); ожидайте flutterTts.setPitch(1); ожидайте flutterTts.speak(текст); } Bool isPlaying = ложь; Future playAllPhrases() async { isPlaying = правда; // Устанавливаем флаг, указывающий, что воспроизведение продолжается Список tempCardsList = List.from(список карт); // Создаем временный список for (Строковая фраза в tempCardsList) { если (!isPlaying) перерыв; // Проверяем флаг и при необходимости прерываем for (int word = 0; word < tts_word_repeat; word++) { если (!isPlaying) перерыв; // Проверяем флаг и при необходимости прерываем дождитесь textToS (фраза); await Future.delayed(Duration(секунды: tts_delay)); } } } Future _dialogBuilder (контекст BuildContext) { вернуть showDialog( контекст: контекст, строитель: (контекст BuildContext) { вернуть AlertDialog( title: const Text('Добавьте слово или фразу'), содержимое: TextField( контроллер: аддконтроллер, оформление: const InputDecoration( граница: UnderlineInputBorder(), labelText: 'Введите слово или фразу', ), ), действия: [ ТекстКнопка( стиль: TextButton.styleFrom( textStyle: Theme.of(context).textTheme.labelLarge, ), дочерний элемент: const Text('Отмена'), onPressed: () { Навигатор.оф(контекст).pop(); addController.clear(); }, ), ТекстКнопка( стиль: TextButton.styleFrom( textStyle: Theme.of(context).textTheme.labelLarge, ), дочерний элемент: const Text('Готово'), onPressed: () { печать (addController.text); setState( () { if (!(addController.text.trim().isEmpty)) { cardList.add(addController.text); addController.clear(); Навигатор.оф(контекст).pop(); } еще { addController.clear(); } }, ); }, ), ], ); }, ); } @переопределить Сборка виджета (контекст BuildContext) { вернуть эшафот( AppBar: AppBar( заголовок: Строка( mainAxisAlignment: MainAxisAlignment.spaceBetween, дети: [ Текст('Мировой'), ЗначокКнопка( значок: Значок(Icons.settings), onPressed: () { setState(() { Навигатор.of(контекст).push( MaterialPageRoute (строитель: (контекст) => Страница_Настройки())); }); }, ), ], ), ), floatActionButton: Столбец( mainAxisAlignment: MainAxisAlignment.end, дети: [ Кнопка ПлавающегоДействия( дочерний элемент: Значок(Icons.add), onPressed: () { _dialogBuilder (контекст); }, ), Размерная коробка( высота: 10, ), Кнопка ПлавающегоДействия( дочерний элемент: Значок (Icons.volume_up_outlined), onPressed: () { игратьВсеФразы(); }, ), Размерная коробка( высота: 10, ), Кнопка ПлавающегоДействия( дочерний элемент: Значок (Icons.stop_circle), onPressed: () { setState(() { isPlaying = ложь; }); }, ), ], ), тело: Домашняя страница(), ); } } класс HomePage расширяет StatefulWidget { const HomePage({super.key}); @переопределить State createState() => _HomePageState(); } класс _HomePageState расширяет State { @переопределить Сборка виджета (контекст BuildContext) { вернуть ListView.builder( itemCount: cardList.length, itemBuilder: (контекст, индекс) { вернуть заполнение( отступ: const EdgeInsets.symmetric (по вертикали: 2, по горизонтали: 5), ребенок: Карточка( ребенок: Столбец( mainAxisSize: MainAxisSize.min, дети: [ ListTile( завершающий: IconButton( значок: Значок (Icons.delete), onPressed: () { setState(() { //добавим логику удаления карты cardList.removeAt(индекс); }); }, ), заголовок: Строка( дети: [ // Размерная коробка( // ширина: 8, // ), Текст(списоккарточек[индекс]), ], ), ), ], ), ), ); }, ); } } и settings.dart:

import 'package:flutter/material.dart'; импортировать «main.dart»; класс Settings_page расширяет StatefulWidget { const Settings_page({super.key}); @переопределить State createState() => _Settings_pageState(); } класс _Settings_pageState расширяет State { @переопределить Сборка виджета (контекст BuildContext) { вернуть эшафот( тело: Центр( ребенок: Текст («Привет»), ), ); } } я использую метод навигатора:

Navigator.of(context).push(MaterialPageRoute(builder: (context) => Settings_page())); и я использую метод навигатора без setstate, но все это приводит к одной и той же проблеме.

вот видео о приложении: Google Диск

Надеюсь, вы нашли решение этой проблемы (:
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»