【问题标题】:ListView scrolling issue in JavaFX2JavaFX2 中的 ListView 滚动问题
【发布时间】:2014-04-23 00:44:43
【问题描述】:

我正在开发一个应用程序,它有一个 ListView,其中包含需要复杂单元格布局的项目。单元格的高度可变,其中一些单元格往往大于视口高度。

但是当 ListView 充满项目时,滚动拇指往往会在滚动时调整其自身的大小,这使得在滚动时很难抓住拇指。这主要发生在通过不同大小的单元格时。

如果我创建与 JList 一起使用的相同类型的单元格渲染,这在 Swing 中不是问题。 JavaFX 2 和 JavaFX8 都存在这个问题。

当查看负责ListView布局和处理滚动的VirtualFlow时,似乎滚动条拇指侧(lenghtbar)是根据单元格数和可见单元格数计算的,这实际上是一个问题来到具有可变单元格高度的列表。

那么这是 Java FX 列表视图滚动条行为的未来吗?或者有什么解决方案可以解决这个问题?还是应该尝试隐藏滚动条并提供不同的用户交互来滚动?

【问题讨论】:

  • 这听起来像是一个错误 - 您可以查看 jira 以查看它是否已被报告,如果没有报告,请提供样本。

标签: javafx


【解决方案1】:

此问题已在https://javafx-jira.kenai.com/browse/RT-25059 下报告,并已在 Java8 中得到一定程度的修复。因此,如果在 JavaFx2 上需要此修复,我们必须在提交 http://hg.openjdk.java.net/openjfx/8/controls/rt/rev/81cc13fe6f96 下反向移植更改@

要在 JavaFX 2.2 中获得这些更改,您需要将所需的更改应用于 FX2.2 VirtualFlow.java 类并在加载 jfxrt.jar 之前加载这些更改。另一种方法是,如果您不喜欢弄乱 jfxrt 类,则拥有自己的 ListView,它使用您自己的 Skin,并且修补后的 VirtualFlow 版本可能具有不同的名称。但与第一个解决方案相比,这可能需要大量定制。

欢迎更多方法:)。

【讨论】:

    猜你喜欢
    • 2011-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-19
    • 2020-12-30
    • 1970-01-01
    • 1970-01-01
    • 2011-06-21
    相关资源
    最近更新 更多