JavaFX2中的ListView滚动问题

时间:2014-04-20 05:12:17

标签: javafx

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

但是当ListView充满了项目时,滚动拇指会在滚动时调整其自身的大小,这使得在滚动时难以握住拇指。这种情况主要发生在通过不同大小的细胞时。

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

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

这是Java FX列表视图滚动条行为的未来吗?或者有任何解决方案可用于此问题?或者我应该尝试隐藏滚动条并提供不同的用户交互来滚动?

1 个答案:

答案 0 :(得分:0)

此问题已在https://javafx-jira.kenai.com/browse/RT-25059下报告,并在某些范围内在Java8中得到修复。因此,如果在JavaFx2上需要此修复,我们必须在commit http://hg.openjdk.java.net/openjfx/8/controls/rt/rev/81cc13fe6f96

下向后移植更改

要在JavaFX 2.2中进行此更改,您需要对FX2.2 VirtualFlow.java类应用所需的更改,并在加载jfxrt.jar之前加载这些更改。另一种方法是,如果你不喜欢搞乱jfxrt类就是让你拥有使用你自己的Skin的ListView,而修补后的VirtualFlow版本可能有不同的名字。但与第一种解决方案相比,这可能需要大量定制。

欢迎采用更多方法:)。