JAVAFX: вид в виде адаптера для диаграммы Ганта?

В Android была такая вещь, называемая адаптером, которая загружала на экран только 5 или около того элементов из 100 доступных, когда вы прокручивали список видео/изображений/и т. д. В настоящее время я строю диаграмму Ганта, но она очень эффективна.

Мой текущий метод состоит в том, чтобы заполнить все 365 дней и работать оттуда, но, как вы знаете, это слишком интенсивно.

Я думал о том, чтобы закодировать его так, чтобы за раз отображались только 30 дней (или сколько ячеек на экране). Когда вы прокручиваете влево или вправо, он перерабатывает ячейки, отбрасывая данные за пределами экрана и вместо этого заполняя данные на экране.

Это слишком сложно?

Другой моей мыслью было заполнить только первый и последний дни каждого месяца вместо всех 365 дней. Таким образом, у меня есть только 12 ячеек с данными. Я должен вычислить ячейки между ними вручную.

Что мне лучше всего сделать?


person Toni_Entranced    schedule 06.08.2014    source источник
comment
Предлагаемое вами решение является очень эффективным, но его будет сложно реализовать. Это в основном способ, которым JavaFX реализует ListView, TableView и т. д. за кулисами (они называются виртуализированными элементами управления). Вы можете прочитать исходный код к тем. Также взгляните на Flowless.   -  person James_D    schedule 07.08.2014


Ответы (1)


Я также реализую панель календаря с бесконечной прокруткой. Одно решение, полученное из многих источников, заключается в том, что вы используете холст с прослушивателем прокрутки. Когда пользователь перестает прокручивать, вы перерисовываете эту часть диаграммы Ганта.
Модель данных позволяет кэшировать данные для настраиваемых диапазонов для повышения производительности.

person javaLearner    schedule 06.10.2014