我正在寻找一种方法来复制本机 WebView 缩放双击但通过长按触发。因为,使用双标签缩放,我希望缩放以触摸点为中心缩放,然后能够以编程方式缩小到默认缩放级别。
我在想可能有一种方法可以将双击手势欺骗到长按处理程序中的 WebView 并为其提供长按的坐标,但我无法找到一种方法来做到这一点。
这可以做到吗?
我正在寻找一种方法来复制本机 WebView 缩放双击但通过长按触发。因为,使用双标签缩放,我希望缩放以触摸点为中心缩放,然后能够以编程方式缩小到默认缩放级别。
我在想可能有一种方法可以将双击手势欺骗到长按处理程序中的 WebView 并为其提供长按的坐标,但我无法找到一种方法来做到这一点。
这可以做到吗?
根据这篇文章中的信息,找到了一个可行的解决方案:
我替换了以下内容:
public void simulateDoubleTap()
{
simulateDoubleTapEvent(0);
simulateDoubleTapEvent(2);
simulateDoubleTapEvent(2);
simulateDoubleTapEvent(1);
simulateDoubleTapEvent(0);
}
和:
public void simulateDoubleTap()
{
simulateDoubleTapEvent(MotionEvent.ACTION_DOWN);
simulateDoubleTapEvent(MotionEvent.ACTION_UP);
simulateDoubleTapEvent(MotionEvent.ACTION_DOWN);
simulateDoubleTapEvent(MotionEvent.ACTION_UP);
}
然后在我的 longpress 处理程序中添加了对 simulationDoubleTap() 的调用。这似乎有效 - 但它不是 100% 一致的。可能想在事件之间添加一些小的延迟,看看是否可以消除它。我还注意到,当放大时,单个事件会起作用,但是需要两次触发双击才能缩小。这可能是因为我正在使用的手势处理程序或其他一些问题,但通常这似乎可以满足我的需要。