如果你只是想向下滚动到一个元素,您可以访问到您正在加载,JavaScript中的页面,你可以做这样的事情在页面加载:
var container = $('div'),
scrollTo = $('#my_header');
container.scrollTop(
scrollTo.offset().top - container.offset().top + container.scrollTop()
);
见这个问题: How to scroll to specific item using jQuery?
如果你不希望修改底层的资源,那么你可以在下面的Java代码添加到您的WebView,这将调用JavaScript代码之上,一旦加载页面:
WebView myWebView = (WebView)v.findViewById(R.id.web_view);
myWebView.getSettings().setSupportZoom(true);
myWebView.getSettings().setUseWideViewPort(true);
myWebView.getSettings().setBuiltInZoomControls(true);
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.setWebChromeClient(new WebChromeClient());
myWebView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
String javascript = "javascript:"
+ "var container = $('div'),scrollTo = $('#my_header');"
+ "container.scrollTop(scrollTo.offset().top - container.offset().top + container.scrollTop());";
view.loadUrl(javascript);
}
});
// Finally, load the page
myWebView.loadUrl(resource);
请注意,只要任何页面由该WebViewClient加载,就会运行javascript 。如果需要的话,您可以轻松添加逻辑来仅调用特定页面的JavaScript滚动代码。
通常,如果你想滚动到一个'ID',你可以追加'#my_header'到URL的末尾。试试看,看看它是否有效。例如:http://stackoverflow.com/questions/25990208/scroll-webview-dynamically#post-editor – musefan 2014-09-23 08:52:48