QML: имитировать GridView / ListView cacheBuffer с помощью Grid - PullRequest
0 голосов
/ 07 декабря 2018

У меня довольно сложное представление QML, которое в основном представляет собой GridView, но значение по умолчанию GridView не используется, поскольку оно не поддерживает разделы.

По этой причине я использую комбинацию Flickable + Grid s и Repeater для заполнения нескольких заголовков секций + их сеток под одной прокруткой.

Теперь, поскольку cacheBuffer недоступен, и у нас есть довольно тяжелые визуальные делегаты для представлений + бесконечныймодель для последнего раздела (которая выбирается при дальнейшей прокрутке пользователя), наше потребление ОЗУ увеличивается как сумасшедшая, когда вы непрерывно прокручиваете.Мое лучшее предположение пока заключается в том, что каждый экземплярный экземпляр QML хранится в памяти в основном навсегда .

Я ищу решение, в котором вы имитируете свойство GridView cacheBuffer и применяете его для простых Grid и выгружаете делегатов, которые находятся далеко от видимой области прокрутки.

На данный момент я подумываю об использовании Loader для загрузки каждого делегата и отслеживания того, какие элементы находятся / находятся вблизи видимой области прокрутки, чтобы их Loader s могли загружать / выгружать его содержимое.

Будетценим любое предложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...