public void flick(final int speedX, final int speedY) { List<View> scrollableContainer = ViewHierarchyAnalyzer.getDefaultInstance().findScrollableContainer(); if (scrollableContainer == null) { // nothing to do return; } for (View view : scrollableContainer) { if (view instanceof AbsListView) { // ignore } else if (view instanceof ScrollView) { final ScrollView scrollView = (ScrollView) view; instrumentation.runOnUiThread( new Runnable() { public void run() { scrollView.fling(speedY); } }); } else if (view instanceof WebView) { final WebView webView = (WebView) view; instrumentation.runOnUiThread( new Runnable() { public void run() { webView.flingScroll(speedX, speedY); } }); } } }
public void scroll(final int xOffset, final int yOffset) { List<View> scrollableContainer = ViewHierarchyAnalyzer.getDefaultInstance().findScrollableContainer(); if (scrollableContainer == null) { // nothing to do return; } for (View view : scrollableContainer) { if (view instanceof AbsListView) { final AbsListView absListView = (AbsListView) view; instrumentation.runOnUiThread( new Runnable() { public void run() { absListView.scrollBy(xOffset, yOffset); } }); } else if (view instanceof ScrollView) { final ScrollView scrollView = (ScrollView) view; instrumentation.runOnUiThread( new Runnable() { public void run() { scrollView.scrollBy(xOffset, yOffset); } }); } else if (view instanceof WebView) { final WebView webView = (WebView) view; instrumentation.runOnUiThread( new Runnable() { public void run() { webView.scrollBy(xOffset, yOffset); } }); } } }