pen*_*uru 9 android android-webview
我正在尝试使用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>
Run Code Online (Sandbox Code Playgroud)
我要做的是显示一个html文件(只有一个地图图像)并滚动到图像上的某个区域:
mapWebView.loadUrl("file:///android_asset/maps/map.html");
mapWebView.scrollTo(300, 300);
Run Code Online (Sandbox Code Playgroud)
但是当加载webview时,它总是显示图像的(0,0).
这有什么问题scrollTo()?
Dea*_*ild 16
我怀疑这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);
}
}
);
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助
编辑:事实证明这是不可靠的,改为使用它:
mapWebView.setPictureListener(new PictureListener() {
@Override
public void onNewPicture(WebView view, Picture picture) {
mapWebView.scrollTo(300, 300);
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11435 次 |
| 最近记录: |