来自http://docs.oracle.com/javafx/2/api/javafx/scene/control/Cell.html:
“Cell API用于虚拟化控件,如ListView,TreeView和TableView.Cell是一个标记控件,用于在ListView,TreeView中呈现单个”行“或TableView。“
为什么要虚拟化?
答案 0 :(得分:6)
如果要在Control
ListView
中显示大量数据,则需要某种方式虚拟化Nodes
创建和使用的数据。否则会影响内存占用,从而影响时间。
例如,如果您有1000万个数据项,则不希望创建1000万个节点。因此,您可以创建足够的节点来动态填充显示,并在用户滚动ListView
控件时重复使用它们。
P.S:每个框架都有这种虚拟化,无论是Android,WPF,JavaFX等。因为TreeView,ListView,TableView和其他此类控件可以 可能用于显示令人难以置信的大量数据, 为每个项目创建一个实际的Cell是不可行的 控制。我们只使用非常大的数据集 几个细胞。每个Cell都被回收"或重复使用。这就是我们的意思 当我们说这些控件被虚拟化时。
来自JavaFX的一位开发人员: http://fxexperience.com/2009/09/ui-virtualization/