我正在尝试使用 webview 的 scrollTo 方法。这是我的 webview 布局文件。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<WebView
android:id="@+id/webMap"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</LinearLayout>
我想做的是显示一个 html 文件(它只有一个 map 图像)并滚动到图像上的特定区域:
mapWebView.loadUrl("file:///android_asset/maps/map.html");
mapWebView.scrollTo(300, 300);
但是当加载 webview 时,它总是显示图像的 (0, 0)。
这里的scrollTo()
有什么问题?
最佳答案
我怀疑 mapWebView.loadUrl("file:///android_asset/maps/map.html");
是异步的,所以 mapWebView.scrollTo(300, 300);
在 webview 完成加载之前执行。页面加载后,它将丢失您应用的滚动设置,并将重置到顶部。
您需要监听页面加载然后滚动它:
mapWebView.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
super.onPageFinished(view, url);
mapWebView.scrollTo(300, 300);
}
}
);
希望对你有帮助
编辑:原来这是不可靠的,改用这个:
mapWebView.setPictureListener(new PictureListener() {
@Override
public void onNewPicture(WebView view, Picture picture) {
mapWebView.scrollTo(300, 300);
}
});
关于android - WebView scrollTo 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9392031/