【问题标题】:JavaFX ScrollPane: disable panning for touch eventsJavaFX ScrollPane:禁用触摸事件的平移
【发布时间】:2013-07-23 17:21:56
【问题描述】:

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

感谢您的帮助。

【问题讨论】:

    标签: javafx-2 javafx pan panning scrollpane


    【解决方案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 是一个简单的切换按钮。应该与任何其他控件一起使用。

    【讨论】:

      【解决方案2】:

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

      例子:

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

      希望能帮到你

      【讨论】:

      • 我尝试了您的解决方案,但它不起作用。无论如何感谢您的尝试。
      • 对不起,我帮不上忙,我的答案不是很清楚,所以我添加了一个小例子。你试过了吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-02
      • 1970-01-01
      • 1970-01-01
      • 2017-05-17
      • 1970-01-01
      相关资源
      最近更新 更多