我写的代码的简化版本:
//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
在此提前表达我的谢意,等待各位大师们的指点。
此致。
我可以自己解决这个问题。我附加了以下代码:
webSettings.setDisplayZoomControls(false);
之后触摸监听器就可以正常工作了。