在javafx TableView上自动水平滚动。

问题描述 投票:0回答:1

如果我在我的表格上向右滚动,它就会自动回滚到左边。我没有自己的滚动实现,都是由TableView完成的。有没有人见过这种情况?如果我在windows上测试它,我没有问题。

compile "org.javafxports:jfxdvk:8.60.13"
javafxportsVersion = '8.60.13'
javafxports
1个回答
0
投票

这个问题更多的是和javafx有关。如果设置了 "IS_TOUCH_SUPPORTED "标志,滚动条在使用后会被设置为可见假(VirtualFlow)。变更监听器onVisible然后做一个updateHbar()。因为hbar.isVisible(),滚动条的var值被设置为0.我不想改变 "IS_TOUCH_SUPPORTED"。这就是为什么我创建了一个自己的皮肤,它只创建了一个自定义虚拟流。自定义虚拟流也很简单,我只通过反射将tempVisibility设置为true。而且我还覆盖了startSBReleasedAnimation()方法,里面什么都不做。

public class CustomVirtualFlow<T extends IndexedCell<?>> extends VirtualFlow<T> {

public CustomVirtualFlow() {
    super();

    try {
        final Field field = VirtualFlow.class.getDeclaredField("tempVisibility");             
        field.setAccessible(true);

        field.setBoolean(this, true);
    } catch (final Exception e) {       
    }
}

/*
 * (non-Javadoc)
 *
 * @see com.sun.javafx.scene.control.skin.VirtualFlow#startSBReleasedAnimation()
 */
@Override
protected void startSBReleasedAnimation() {
    // do not call the super.startSBReleasedAnimation()
}
© www.soinside.com 2019 - 2024. All rights reserved.