如果我在我的表格上向右滚动,它就会自动回滚到左边。我没有自己的滚动实现,都是由TableView完成的。有没有人见过这种情况?如果我在windows上测试它,我没有问题。
compile "org.javafxports:jfxdvk:8.60.13"
javafxportsVersion = '8.60.13'
这个问题更多的是和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()
}