listview - 什么是 "virtualized controls"? (在 JavaFX 文档中提到)。

标签 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 中呈现单个“行”。”

为什么要虚拟化?

最佳答案

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

例如,如果您有 1000 万个数据项,您不想创建 1000 万个节点。因此,您创建了足够多的节点来动态填充显示并在用户滚动浏览 ListView 时重复使用它们。控制。

来自 documentation :

Because TreeView, ListView, TableView and other such controls can potentially be used for displaying incredibly large amounts of data, it is not feasible to create an actual Cell for every single item in the control. We represent extremely large data sets using only very few Cells. Each Cell is "recycled", or reused. This is what we mean when we say that these controls are virtualized.



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

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

关于listview - 什么是 "virtualized controls"? (在 JavaFX 文档中提到)。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20995444/

相关文章:

c++ - 根据 Windows 版本更改控件的视觉样式

java - android 恢复在 backstack 中的 fragment 的实例状态

android - 移除 ListView 中 ListItem 周围的蓝色光晕 (android)

css - 有没有办法设置独立 TableView 列的样式?

java - 有条件地更改JavaFX DatePicker文本字段的填充颜色和背景颜色

c# - WPF 捕捉控件

java - Android:重叠使列表错误

android - 在 ListView 中保留一个 EditText 值

java - JavaFX 3D 中的可见光源

delphi - Delphi 中的任何操作引发的 OnChange 事件是否有替代方案?