Узнайте, какие элементы в ListView видны

Как я могу узнать, какие элементы в настоящее время visible или invisible в ListView?
Например, у меня есть 100 элементов в ListView, и когда я прокручиваю вверх экрана или списка, я хочу определить, какие элементы появляются или исчезают из окно просмотра.

Иллюстрация:

введите описание изображения здесь


person DolDurma    schedule 12.07.2019    source источник
comment
Почему ты хочешь это знать? Если вы собираетесь составить список из 100 элементов, вы должны использовать ListView.builder, ведь вы можете передать itemBuilder, который создаст «виджет» строки в вашем listView. Так что флаттер справится с тем, что линия видна и отрендерит ее, а невидимые очистит из памяти...   -  person LgFranco    schedule 12.07.2019
comment
да, я знаю, что флаттер может справиться с этим. я хочу использовать эту функцию для использования других слушателей, чтобы использовать это   -  person DolDurma    schedule 12.07.2019


Ответы (1)


Нет простого способа сделать это. Здесь тот же вопрос, однако на него нет ответа.

По этому поводу существует активная проблема GitHub.

В этом выпуске есть несколько решений проблемы. Этот Gist содержит тот, для которого требуется rect_getter package.
Кроме того, вы можете взглянуть на это предложение.

TL;DR

Это еще не реализовано, если вы ищете простой способ узнать это. Однако есть решения, подобные упомянутым выше, и из других пакетов, например VisibilityDetector из flutter_widgets.

person creativecreatorormaybenot    schedule 12.07.2019
comment
Теперь есть простой способ сделать это, проверьте этот ответ: stackoverflow.com/a/57252652/11246031 - person Lukas Schneider; 23.12.2019
comment
@LukasSchneider Спасибо, что упомянули об этом! - person creativecreatorormaybenot; 24.12.2019