【问题标题】:JavaFX: How to pan a ScrollPane that contains Button children?JavaFX:如何平移包含 Button 子项的 ScrollPane?
【发布时间】:2017-05-17 03:32:30
【问题描述】:

在 JavaFX 中,我有一个 ScrollPane,其中包含一个 TilePane,其中包含各种 Buttons。

此应用程序将在触摸屏上运行,因此用户将通过在 ScrollPane 中拖动手指来滚动,但如果手指开始在子 Button 上拖动,则 ScrollPane 不会滚动。由于当今触摸 UI 的工作方式,这对用户来说是意想不到的行为。

我希望按钮响应点击,但我希望将拖动事件发送到底层 ScrollPane(如果它使用拖动事件进行平移)。

我已将ScrollPanesetPannable() 属性设置为true,并尝试在Button 的各种setOnDrag*() 方法上设置处理程序,然后触发ScrollPane 的@ 987654329@方法,但是什么也没发生。

例子:

    button.setOnDragDone(new EventHandler<DragEvent>() {
        @Override
        public void handle(DragEvent event) {
            scrollPane.fireEvent(event);
        }
    });

我该怎么做呢?

【问题讨论】:

  • 这方面有什么进展吗?我正在尝试对鼠标事件做同样的事情。

标签: javafx touch mouseevent javafx-8


【解决方案1】:

试试这个,consumeTouchEvent 上的ScrollPane 比如...

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

【讨论】:

    猜你喜欢
    • 2013-07-23
    • 1970-01-01
    • 2022-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多