如何在Xamarin.Android上处理三倍(或配置的数字)轻击手势?

And*_*sok 2 c# android xamarin.android xamarin

我正在使用GestureDetector.SimpleOnGestureListener类来处理我的应用程序上的一些简单手势。而且效果很好。

但是现在我面临着处理多次轻击手势的问题。我只想配置NumbersOfTaps并处理适当的手势。

但找不到任何详细信息或说明如何在Andoid或Xamarin.Android文档上实现它。

wis*_*ter 5

            DateTime _firstTap;
            int _tapCount = 0;
            const int TAP_COUNT_TRESHOLD = 5; //number of taps
            const int TIME_TRESHOLD 200; //ms time

            protected override void OnResume()
            {
                myButton.Clicked += ButtonTapped;
            }

            protected override void OnPause()
            {
                myButton.Clicked -= ButtonTapped;
            }

            void ButtonTapped(object sender, EventArgs e){

                var time = Math.Round((DateTime.Now - _firstTap).TotalMilliseconds, MidpointRounding.AwayFromZero);

                if (time > TIME_TRESHOLD)
                {
                    _tapCount = 1;
                    _firstTap = DateTime.Now;
                }
                else
                    _tapCount++;

                if (_tapCount == TAP_COUNT_TRESHOLD)
                {
                   //do your logic here
                }
            }
Run Code Online (Sandbox Code Playgroud)

时间限制和点击次数是可配置的。