WebView GestureRecognition无法在Xamarin表单中使用 [英] WebView GestureRecognition not working in Xamarin forms

查看:91
本文介绍了WebView GestureRecognition无法在Xamarin表单中使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个Web视图当点击该Web视图时,我需要使按钮可见,这是手势识别不起作用的问题

I have a webview When this webview is tapped I need to make visible of a button the problem Is Gesture recognition is not working

我的Xaml

   <customRenderer:CustomWebView Uri="{Binding SelectedJournal.Uri}" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand"  x:Name="CustomWebView" AbsoluteLayout.LayoutBounds="0,50,1,1" AbsoluteLayout.LayoutFlags="SizeProportional"  >
            <customRenderer:CustomWebView.GestureRecognizers>
                <TapGestureRecognizer Tapped="TapGestureRecognizer_OnTapped2" NumberOfTapsRequired="1" ></TapGestureRecognizer>
            </customRenderer:CustomWebView.GestureRecognizers>
        </customRenderer:CustomWebView>

        <customRenderer:NavigationImageButton ItemTapped="FullScreenOnTapped" Source="full.jpg" AbsoluteLayout.LayoutBounds="0.5,1,-1,-1" AbsoluteLayout.LayoutFlags="PositionProportional"  HeightRequest="60" WidthRequest="60" x:Name="FullScreenBtn" IsVisible="False" >

在我后面的代码中这样调用

In the code behind i called like this

private void TapGestureRecognizer_OnTapped2(object sender, EventArgs e)
    {
        FullScreenBtn.IsVisible = true;
    }

这应该可以,但是不可以

This should work but this is not working

也是我的自定义呈现Web视图类

also my custom rendering web view class

  public class CustomWebView : WebView
{
    public static readonly BindableProperty UriProperty = BindableProperty.Create<CustomWebView, string>(p => p.Uri, default(string));

    public string Uri
    {
        get { return (string)GetValue(UriProperty); }
        set { SetValue(UriProperty, value); }
    }
}

如何实现这一目标

推荐答案

您可以在视图中使用焦点"事件来显示按钮,而不必在Web视图上使用手势识别器.您可以执行以下操作:

Instead of using the gesture recognizer on your webview, you can use the 'Focused' event of your view to display your button. You can do something like this:

var wb = new WebView
{
    HorizontalOptions = LayoutOptions.FillAndExpand,
    VerticalOptions = LayoutOptions.FillAndExpand,
    Source = "https://stackoverflow.com/questions/56320611/webview-gesturerecognition-not-working-in-xamarin-forms",
};

wb.Focused += (s, e) =>
{
   //Handle your logic here!
   wb.Unfocus();
 };

在这里,如果您希望在每次点击Webview时都实现逻辑,则使用Unfocus().

Here, Unfocus() is used if you wish to implement your logic everytime the webview is tapped.

这篇关于WebView GestureRecognition无法在Xamarin表单中使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆