我正在寻找一种解决方案,以禁用Android WebView的一键式缩放(也称为“拖动到缩放”或“双击拖动”来缩放)。如果您不熟悉该手势,请在WebView中双击屏幕,然后再次单击,将手指保持在屏幕上并将其上下拖动以使WebView缩放。
该应用程序使用WebView在Xamarin C#中。
以下代码仅禁用其他类型的缩放(双击,捏和缩放):
Settings.SetSupportZoom(false);
Settings.BuiltInZoomControls = false;
任何帮助将不胜感激。
答案 0 :(得分:1)
不会自动为Web视图启用此功能。我认为问题本身出在网站上。我确实有个解决办法。
将touchEvent添加到Web视图。通过将e.Handled设置为true,可以禁用与Web视图的任何形式的交互。
我通过“ handled”变量来跟踪e.Handled。双击时将其设置为true,而当您松开屏幕的手指时将其设置为false。这导致双击后,Webview不会执行任何操作,直到您松开屏幕的手指为止。
var handled = false;
GestureDetector _gestureDetector = new GestureDetector(this, new GestureListener());
_gestureDetector.DoubleTap += (object sender, GestureDetector.DoubleTapEventArgs e) => {
handled = true;
};
webView.Touch += (object sender, View.TouchEventArgs e) => {
_gestureDetector.OnTouchEvent(e.Event);
if (e.Event.Action == MotionEventActions.Up)
{
handled = false;
}
e.Handled = handled;
};
您需要添加此类以启用OnDoubleTap功能。
private class GestureListener : GestureDetector.SimpleOnGestureListener
{
public override bool OnDoubleTap(MotionEvent e)
{
return true;
}
}