к примеру SingleChildScrollView в котором просто Column -> Text*1000 на 1000 элементов. Почему скролинг тупит? Разве он не должен просто один раз отрисовать список и потом просто вьюпорт перемещать? Откуда тормоза?
В дебаге проверяешь?
Докстринга SingleChildScrollView. /// When you have a list of children and do not require cross-axis /// shrink-wrapping behavior, for example a scrolling list that is always the /// width of the screen, consider [ListView], which is vastly more efficient /// than a [SingleChildScrollView] containing a [ListBody] or [Column] with /// many children. А еще лучше использовать ListView.builder(). Из той же докстринги можно понять почему.
В дебагере вижу вызовы RenderParagraph при скролинге
Дело в том, что он пытается отрисовать сразу 1000 строк. И у устройства может банально не хватить оперативки или мощности процессора. Если нужно отрисовать много строк используй ListView.builder. Он генерит строки по мере надобности и «забывает» те, которые ты уже пролистал.
Где можно прочитать про таких свойств ListView?
api.flutter.dev
В оффициальной доке по ListView
Я просто не совсем привык к декларативному UI, где что-то там само ребилдится. Обычно ничего не ребилдится если ты явно не изменил что-то. А тут получается другая история
Обсуждают сегодня