WebView的onScaleChanged处理程序多次调用

时间:2014-01-21 15:28:47

标签: android webview chromium android-4.4-kitkat webviewclient

我有自定义的WebView类,其中默认的zoomIn / zoomOut控件被禁用,我手动处理缩放事件。

我还有WebViewClient,其中onScaleChanged()处理程序被覆盖,它看起来像这样:

mWebViewClient = new WebViewClient(){
    @Override
    public void onScaleChanged(WebView view, float oldScale, float newScale) {
        super.onScaleChanged(view, oldScale, newScale);
        System.out.println("Scale changed");
    }
};

当调用zoomIn()/ zoomOut()而不是onScaleChanged()处理程序多次执行时,问题就出现了,我多次获得“Scale changes”。每个zoomIn()/ zoomOut()事件应该将此事件称为一次

另外值得一提的是,此问题仅在Android版本低于4.4的设备上发生。在Android 4.4上,每个缩放事件只调用一次处理程序(应该是这样)。我在Android 4.3.1,Android 4.1.1以及Android 4.0.4上都遇到了这个问题(所有设备都是手机)。

众所周知,从Android 4.4引入了Chromium驱动的WebViews,我猜这个更新已经解决了这个问题,但是我无法在网上找到任何相关内容。

为什么在WebKit引擎支持的WebView上多次调用此处理程序,在Chromium驱动的WebView上,它按预期工作?

0 个答案:

没有答案