There are two approaches,
1. using TouchStart and TouchEnd events. You can single/ double touches etc depending on the experience you want to achieve in your app.
2. using onScrollEvent and implementing a ScrollHandler.
example to handle simple scrolling using TouchStart and End events.
HTMLPanel searchPage;
int scrollStartPosX = 0;
int scrollStartPosY = 0;
public init() {
if (TouchEvent.isSupported()) {
searchPage.addDomHandler(this, TouchStartEvent.getType());
searchPage.addDomHandler(this, TouchMoveEvent.getType());
}
}
/* (non-Javadoc)
* @see com.google.gwt.event.dom.client.TouchStartHandler#onTouchStart(com.google.gwt.event.dom.client.TouchStartEvent)
*/
@Override
public void onTouchStart(TouchStartEvent event) {
scrollStartPosY = searchPage.getElement().getScrollTop()
+ event.getTouches().get(0).getPageY();
scrollStartPosX = searchPage.getElement().getScrollLeft()
+ event.getTouches().get(0).getPageX();
}
/* (non-Javadoc)
* @see com.google.gwt.event.dom.client.TouchMoveHandler#onTouchMove(com.google.gwt.event.dom.client.TouchMoveEvent)
*/
@Override
public void onTouchMove(TouchMoveEvent event) {
searchPage.getElement().setScrollTop(
scrollStartPosY - event.getTouches().get(0).getPageY());
searchPage.getElement().setScrollLeft(
scrollStartPosX - event.getTouches().get(0).getPageX());
event.preventDefault();
}