如何在水平滚动窗格中正确滚动垂直滚动窗格?(LibGDX)

如何在水平滚动窗格中正确滚动垂直滚动窗格?(LibGDX),libgdx,scrollpane,Libgdx,Scrollpane,我已经根据教程制作了一个水平页面的CrollPane。每个页面都由带有正常垂直滚动窗格的表格组成 如果初始拖动是垂直的,我需要垂直滚动;如果拖动是水平的,我需要在页面之间滚动。我意识到我必须做myScroll.setCancelTouchFocus(false)可以激活垂直滚动窗格。然后,我决定将CancelTouchFocus设置为true,如果我想禁用滚动窗格 scrollVert.addListener(新的DragListener(){ @凌驾 公共无效拖动(InputEvent事件、浮

我已经根据教程制作了一个水平页面的CrollPane。每个页面都由带有正常垂直滚动窗格的表格组成

如果初始拖动是垂直的,我需要垂直滚动;如果拖动是水平的,我需要在页面之间滚动。我意识到我必须做
myScroll.setCancelTouchFocus(false)可以激活垂直滚动窗格。然后,我决定将CancelTouchFocus设置为true,如果我想禁用滚动窗格

scrollVert.addListener(新的DragListener(){
@凌驾
公共无效拖动(InputEvent事件、浮点x、浮点y、整数指针){
如果(!滚动){
float dX=Math.abs(getDeltaX());
float dY=Math.abs(getDeltaY());
如果(dX!=0 | | dY!=0){
如果(dX>dY){
scrollPages.setCancelTouchFocus(true);
}否则{
scrollVert.setCancelTouchFocus(真);
}
滚动=真;
}
}
超级拖动(事件、x、y、指针);
}
@凌驾
公共无效修补(InputEvent事件、浮点x、浮点y、int指针、int按钮){
滚动=假;
scrollPages.setCancelTouchFocus(false);
scrollVert.setCancelTouchFocus(假);
超级修补(事件、x、y、指针、按钮);
}
});

问题是,如果我沿对角线方向拖动(或快速向右和向下拖动),滚动窗格会向旁边跳一点,然后才决定滚动到哪里

这是一个困难的问题,因为任何一个可滚动的参与者都将控制拖动。最近有一个类似的问题,你可以从那里开始: