Xamarin TapGestureRecognizer有时无法正常工作

时间:2019-04-18 07:08:18

标签: xaml xamarin xamarin.forms gesture uitapgesturerecognizer

我目前正在使用Xamarin.Forms构建移动应用程序,当我尝试在xaml上使用Xamarin.Forms gestures,尤其是tap gesture时,我在iOS和android平台上都遇到了问题< strong>标签。因为我想将此标签用作链接。

问题是我使用的这个制表符手势有时无法正常工作(大约5次测试= 1次错误)。

在调试期间,当问题发生时,我发现仍可以识别制表符,但在我设置的操作中没有响应。

它同时出现在iOS和Android设备上。

这是我的XAML代码:

<RelativeLayout>
    <Image Source="icon_question" WidthRequest="15" HeightRequest="15"></Image>
    <Label Margin="15, -3, 0, 0" HorizontalOptions="CenterAndExpand" HorizontalTextAlignment="Center" 
           Text="Some text" TextColor="Blue" FontSize="15"  TextDecorations="Underline">
        <Label.GestureRecognizers>
            <TapGestureRecognizer Tapped="_tabLinkForgetPassword"></TapGestureRecognizer>
        </Label.GestureRecognizers>
    </Label>
</RelativeLayout>

这是我后面的代码:

private void _tabLinkForgetPassword(object s, EventArgs e)
{
  App.Current.MainPage = new ResetPasswordPage(false);
}

我希望标签页每次都能响应,而不仅仅是这样。感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如AndroDevil所述,您必须在父对象(Grid,StackLayout,ContentView以及您想要的任何对象)上处理轻击手势。在您的情况下,为什么不使用相对布局?因此,您可以点击“标签”或“图像”。

当您认为它不起作用时,只是当您点击空白处时:在字符之间(甚至在像O这样的char的空白内(但要承认这一点,那种情况下很难点击)像素))。

最后,您不需要设置NumberOfTapsRequired,因为据我所知,它是默认值。