元素三重点击

时间:2017-11-19 01:48:07

标签: xamarin xamarin.forms tap

如何在特定元素上对Xamarin执行三次点击? 我尝试使用for循环执行单击3次,但看起来它很慢,因为它不起作用。

public void AppLaunches()
        {
            for(int i = 0; i <= 3;i++)
            {
                app.Tap(x => x.Css(".app-logo"));
            }

1 个答案:

答案 0 :(得分:0)

您可以在代码或XAML中添加TapGestureRecognizer,并设置触发相关事件或命令所需的抽头数:

使用事件处理程序的XAML:

<Label Text="Welcome to Xamarin Forms!" VerticalOptions="Center" HorizontalOptions="Center" >
    <Label.GestureRecognizers>
        <TapGestureRecognizer NumberOfTapsRequired="3" Tapped="Handle_Tapped"/>
    </Label.GestureRecognizers>
</Label>

事件处理程序:

    void Handle_Tapped(object sender, System.EventArgs e)
    {
        System.Diagnostics.Debug.WriteLine($"Triple tap on {sender}");
    }

回复:Adding a Tap Gesture Gesture Recognizer

注意:三重点击在iOS上运行良好,但Android 支持三个标签作为标准功能(它支持双击)。

回复:https://bugzilla.xamarin.com/show_bug.cgi?id=32874

如果您需要在Android上使用三个标签,则可以单独捕获每个标记(NumberOfTapsRequired =“1”)。如果它是第一次点击,将局部变量设置为1并启动一个以X毫秒到期的后台计时器,如果下一个选项卡在计时器到期之前发生,重新启动计时器,1再到本地变量,重复直到你得到三个水龙头。如果计时器到期,则将局部变量重置为0.