WebView.zoomIn()在渲染视图之前无法正常工作

pin*_*yid 5 android android-webview

我在片段的onCreateView中调用了wv.zoomIn(),它没有任何效果.

全文......

我的片段包含一个滑块,我用它来编程缩放/缩放webview.这工作正常.

我现在想要存储上次使用的缩放级别,并在下次显示时将其应用到webview.所以在onCreateView中,我正在检索缩放级别并调用zoomIn适当的次数.

public View onCreateView(LayoutInflater inflater...
...
if (savedZoom > defaultZoom) { 
 for (int i=defaultZoom; i< savedZoom; i++) {
   MyLog.d("zooming in");   // appears x times in log as expected
   boolean zoominResult = wv.zoomIn();
   MyLog.d("zoominResult = "+zoominResult); // shows zoomIn returns FALSE
 }
}
Run Code Online (Sandbox Code Playgroud)

日志确认wv.zoomIn()被调用的次数正确,但显示的webview仍处于默认缩放状态.

任何建议,如调用zoomIn()后渲染的方法,或保留和恢复webview的缩放设置的替代方法?

Tan*_*hwa 1

不要webview循环放大,尝试

wv.getSettings().setDefaultZoom(savedZoom-defaultZoom);
Run Code Online (Sandbox Code Playgroud)

另外,为了在 webView 上启用缩放,请添加以下代码:

wv.getSettings().setBuiltInZoomControls(true);
Run Code Online (Sandbox Code Playgroud)

您也可以尝试

int zoomLevel=(defaultZoom/savedZoom)*100;
wv.setInitialScale(zoomLevel);
Run Code Online (Sandbox Code Playgroud)