什么是“虚拟化控件”? (在 JavaFX 文档中提到)。
Posted
技术标签:
【中文标题】什么是“虚拟化控件”? (在 JavaFX 文档中提到)。【英文标题】:what are "virtualized controls" ? (mentioned in JavaFX documentation). 【发布时间】:2014-01-26 12:59:32 【问题描述】:来自http://docs.oracle.com/javafx/2/api/javafx/scene/control/Cell.html:
“Cell API 用于虚拟化控件,例如 ListView、TreeView 和 TableView。Cell 是一个带标签的控件,用于在 ListView、TreeView 内呈现单个“行”或表格视图。”
为什么要虚拟化?
【问题讨论】:
【参考方案1】:当您在Control
中显示大量数据时,例如ListView
,您需要某种方式来虚拟化创建和使用的Nodes
。否则会影响内存占用,进而影响时间。
例如,如果您有 1000 万个数据项,您不想创建 1000 万个节点。因此,您可以创建足够的节点来动态填充显示,并在用户滚动ListView
控件时重复使用它们。
来自documentation:
因为TreeView、ListView、TableView等这样的控件可以 可能用于显示大量数据, 为中的每个项目创建一个实际的单元格是不可行的 控制。我们只使用非常大的数据集 几个细胞。每个 Cell 都被“回收”或重复使用。这就是我们的意思 当我们说这些控件是虚拟化的。
P.S : 每个框架都有这种虚拟化,无论是 android、WPF、JavaFX 等。
来自 JavaFX 的一位开发人员: http://fxexperience.com/2009/09/ui-virtualization/
【讨论】:
以上是关于什么是“虚拟化控件”? (在 JavaFX 文档中提到)。的主要内容,如果未能解决你的问题,请参考以下文章