0

我有一个 ScrollPane 的问题。我想禁用平移。对于鼠标来说,由于 setPannaable(boolean) 函数,这非常容易。但这不会禁用触摸事件的平移。那么有没有办法在 ScrollPane 中禁用触摸事件的平移?

谢谢你的帮助。

4

2 回答 2

1

我现在有一个可行的解决方案。在控件中,您不想在 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 是一个简单的切换按钮。应该与任何其他控件一起使用。

于 2015-09-10T10:07:42.997 回答
0

您是否尝试过为您的 ScrollPane 实现与触摸事件相关的 setOnTouch...() 方法?如果您使用该事件,则触摸手势将不起作用。

例子 :

    ScrollPane sp = new ScrollPane();
    sp.addEventHandler(TouchEvent.ANY, new EventHandler<TouchEvent>() {
        @Override
        public void handle(TouchEvent event) {
            event.consume();                
        }
    });

希望我帮助了你

于 2013-07-24T15:16:52.467 回答