WebView GestureRecognition не работает в формах Xamarin - PullRequest
0 голосов
/ 27 мая 2019

У меня есть веб-просмотр. Когда этот веб-просмотр касается, мне нужно сделать видимой кнопку, проблема в том, что распознавание жестов не работает

мой 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" >

В коде я назвал это так

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

Это должно работать, но это не работает

также мой пользовательский класс веб-представления рендеринга

  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); }
    }
}

Как этого добиться

1 Ответ

1 голос
/ 28 мая 2019

Вместо того, чтобы использовать распознаватель жестов в вашем веб-просмотре, вы можете использовать событие «Focused» вашего представления для отображения вашей кнопки.Вы можете сделать что-то вроде этого:

var wb = new WebView
{
    HorizontalOptions = LayoutOptions.FillAndExpand,
    VerticalOptions = LayoutOptions.FillAndExpand,
    Source = "/9281617/webview-gesturerecognition-ne-rabotaet-v-formah-xamarin",
};

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

Здесь, Unfocus () используется, если вы хотите реализовать свою логику каждый раз, когда просматривается веб-просмотр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...