什么是“虚拟控件”? (在JavaFX文档中提到)。

时间:2014-01-08 12:17:34

标签: listview javafx controls cell terminology

来自http://docs.oracle.com/javafx/2/api/javafx/scene/control/Cell.html

“Cell API用于虚拟化控件,如ListView,TreeView和TableView.Cell是一个标记控件,用于在ListView,TreeView中呈现单个”行“或TableView。“

为什么要虚拟化?

1 个答案:

答案 0 :(得分:6)

如果要在Control ListView中显示大量数据,则需要某种方式虚拟化Nodes创建和使用的数据。否则会影响内存占用,从而影响时间。

例如,如果您有1000万个数据项,则不希望创建1000万个节点。因此,您可以创建足够的节点来动态填充显示,并在用户滚动ListView控件时重复使用它们。

来自documentation

  

因为TreeView,ListView,TableView和其他此类控件可以   可能用于显示令人难以置信的大量数据,   为每个项目创建一个实际的Cell是不可行的   控制。我们只使用非常大的数据集   几个细胞。每个Cell都被回收"或重复使用。这就是我们的意思   当我们说这些控件被虚拟化时。

P.S:每个框架都有这种虚拟化,无论是Android,WPF,JavaFX等。

来自JavaFX的一位开发人员: http://fxexperience.com/2009/09/ui-virtualization/