2014-01-08 4 views
4

от http://docs.oracle.com/javafx/2/api/javafx/scene/control/Cell.html:Что такое «виртуализированные элементы управления»? (упоминается в документации JavaFX).

«Ячейка по API используются для виртуальных управления, таких как ListView, TreeView и TableView Ячейки является Маркированным управлением, и используется, чтобы сделать одну.„Строку“внутри ListView, TreeView или TableView. "

Почему они виртуализированы?

ответ

6

Если у вас есть много данных для отображения в Control, таких как ListView, вам понадобится способ виртуализации созданного и используемого Nodes. В противном случае это повлияет на объем памяти и, следовательно, время.

Например, если у вас есть 10 миллионов элементов данных, вы не хотите создавать 10 миллионов узлов. Таким образом, вы создаете достаточное количество узлов для динамического заполнения дисплея и повторного использования, когда пользователь прокручивает элемент управления ListView.

От documentation:

Поскольку TreeView, ListView, TableView и другие подобные элементы управления могут потенциально могут быть использованы для отображения невероятно больших объемов данных, это не представляется возможным создать реальную ячейку для каждого отдельного элемента в контроль. Мы представляем чрезвычайно большие наборы данных, используя только очень маленькие ячейки. Каждая ячейка «перерабатывается» или используется повторно. Это то, что мы имеем в виду , когда мы говорим, что эти элементы управления виртуализированы.

P.S: каждая структура имеет этот вид виртуализации, будь то Android, WPF, JavaFX и т.д.

От одного из разработчиков JavaFX: http://fxexperience.com/2009/09/ui-virtualization/

Смежные вопросы