Как избежать прерывания маршрута страницы?

#flutter #dart

#флаттер #dart

Вопрос:

У меня есть приложение с двумя страницами. С одной страницы на другую я использовал MaterialPageRoute для создания маршрутов

 Navigator.push(
           context,
           MaterialPageRoute(
           builder: (context) => ProductList(),
            ),
          );
  

На моей ProductList() странице у меня фиксированная длина List , поэтому я использовал ListView() , на самом деле этот элемент списка довольно тяжелый. Я использовал ExpandbleList() в этом списке, который я включил в product-details / images и т. Д. (Всякий раз, когда я составлял маршрут, весь этот список строился сразу), даже если они non-async строятся, для их создания требуется довольно много времени ListView() , что заставляет меня сталкиваться с неприятным падением кадров на маршруте. Я хочу избежать этого прерывания, добавив CircularProgressIndicator() промежуточный переход на две страницы, возможно ли это сделать? или другие способы избежать этого прерывания? , пожалуйста, помогите мне.
Спасибо.

Комментарии:

1. Поскольку вы написали, что используете a ListView , который создает все сразу, я предлагаю вам использовать ListView.builder() which гарантирует, что не все записи создаются одновременно, а только по требованию во время прокрутки

2. Также я бы проверил реальное устройство с помощью flutter run —profile или даже —release. Если прерывание есть или нет, отладочная версия на эмуляторе может быть довольно сложной. Даже в документах говорится следующее : «Производительность приложения может быть неустойчивой в режиме отладки. Измерьте производительность в режиме профиля на реальном устройстве. »

3. @kounex У меня всего 3 элемента списка, этого недостаточно ListView()