Instead of changing the orientation based on the first drag, can't you just implement the scrollableArea twice? I don't have any experience using this, but using horizontalScroll and verticalScroll also works. Without testing, it probably will apply the horizontal or the vertical based on your drag.
scrollable2D is so you can also scroll diagonally, at least that's why I used it (had its own problems). So it depends. Scrollable2D will probably need more custom code (it isn't really a scrollable container, but just passes the values, which you can apply an offset to a view for example).
So I would try getting the scrollableArea to work and if that really doesn't work, then look into scrollable2D.