在 Android webview 中启用缩放后,TouchListener 仅工作一次

问题描述 投票:0回答:1

我写的代码的简化版本:

    //Enable zoom.
    WebSettings webSettings = webView.getSettings();  
    webSettings.setBuiltInZoomControls(true);
    webSettings.setSupportZoom(true);

    //Set TouchListener
    webView.setOnTouchListener(this::onTouchWebView);
    .
    .
    .

    // TouchListener
    boolean onTouchWebView(View view, MotionEvent motionEvent) {
    switch (motionEvent.getAction()) {
        case MotionEvent.ACTION_DOWN:
            ...
            break;
        case MotionEvent.ACTION_UP:
            ...
            break;
        case MotionEvent.ACTION_MOVE:
            ...
        }
    }

MotionEvent.ACTION_DOWN、MotionEvent.ACTION_UP、MotionEvent.ACTION_MOVE等在Android手机屏幕第一次触摸时传递给onTouchWebView()函数。但是, onTouchWebView() 函数永远不会从第二个屏幕触摸中调用。

如果禁用缩放,onTouchWebView() 函数效果很好!!!

如何解决这个问题?

我的编程环境如下: Android Studio:2023.3.1 编译SDK:34 目标 SDK:34

在此提前表达我的谢意,等待各位大师们的指点。

此致。

android webview zoom-sdk
1个回答
0
投票

我可以自己解决这个问题。我附加了以下代码:

    webSettings.setDisplayZoomControls(false);

之后触摸监听器就可以正常工作了。

© www.soinside.com 2019 - 2024. All rights reserved.