#flutter #dart
Вопрос:
У меня есть некоторые проблемы со списком флаттера. Я написал свой собственный API для этого приложения. Это дает мне объект, в котором есть «URL», «текст» и другие поля. Я не знаю почему, но этот список такой странный! Это не всегда так, это похоже на заикание в играх. Эта красная линия(на скриншоте ниже) отображается, когда я немного заикаюсь, но иногда они больше. На самом деле, я много пытался его оптимизировать. Вот GitHub для этого проекта clck. У некоторых новостных провайдеров даже нет «фото», но и без этого тоже нехорошо. Кроме того, когда я загружаю все больше и больше статей, он начинает заикаться все больше и больше.
Инструменты разработки:
Растр макс мс — ~13 мс/кадр в среднем ~5 мс/кадр
Я был бы признателен, если бы вы могли мне помочь. Спасибо.
Комментарии:
1. Можете ли вы указать мне точное местоположение
ListView
объекта, о котором идет речь? Файл в репозитории, в котором вы заметили проблему?2. Он находится в библиотеке/новости/компоненты/тело
Ответ №1:
- В приведенном выше коде виджет использует
ListView
попробуйте использоватьListView.builder
вариантListView
, при котором будут создаваться только те элементы, которые в данный момент видны на экране. - Также избегайте
shrinkWrap
, если это возможно, так как это дорогостоящая операция, дополнительная информация указана в документах
ListView.builder(
controller: _controller,
itemCount: c.newsList.lenght,
itemBuilder: (_, index) => NewCard(
article: element,
isLoading: false,
)
physics: const AlwaysScrollableScrollPhysics(),
);
Комментарии:
1. ОК. Я скоро попробую и дам вам отзыв, потому что сейчас я собираюсь лечь спать. В общем, спасибо вам.
2.Я уже пробовал это сделать. Проверьте это на моем github, пожалуйста! Тем не менее, все еще есть некоторые янки. imgur.com/zuMFzLx imgur.com/YTNWcka
3. Мне понадобится больше контекста, чтобы понять, что еще нужно оптимизировать дальше.