【发布时间】:2013-07-23 17:21:56
【问题描述】:
我的 ScrollPane 有问题。我想禁用平移。对于鼠标来说,由于 setPannaable(boolean) 函数,这非常容易。但这不会禁用触摸事件的平移。那么有没有办法在 ScrollPane 中禁用触摸事件的平移?
感谢您的帮助。
【问题讨论】:
标签: javafx-2 javafx pan panning scrollpane
我的 ScrollPane 有问题。我想禁用平移。对于鼠标来说,由于 setPannaable(boolean) 函数,这非常容易。但这不会禁用触摸事件的平移。那么有没有办法在 ScrollPane 中禁用触摸事件的平移?
感谢您的帮助。
【问题讨论】:
标签: javafx-2 javafx pan panning scrollpane
我现在有一个可行的解决方案。在控件中,您不希望在 DRAG 操作期间滚动滚动窗格,添加以下过滤器。
// Filter all SCROLL Events, otherwise the parent scroll pane will pan,
// somehow is this workaround
button2.addEventFilter(InputEvent.ANY, (event)-> {
if (event.getEventType().toString() == "SCROLL")
event.consume();
});
button2 是一个简单的切换按钮。应该与任何其他控件一起使用。
【讨论】:
您是否尝试过为您的 ScrollPane 实现与触摸事件相关的 setOnTouch...() 方法? 如果您使用该事件,则触摸手势将不起作用。
例子:
ScrollPane sp = new ScrollPane();
sp.addEventHandler(TouchEvent.ANY, new EventHandler<TouchEvent>() {
@Override
public void handle(TouchEvent event) {
event.consume();
}
});
希望能帮到你
【讨论】: