【问题标题】:Xamarin Forms: How to add single and double tap for an image?Xamarin Forms:如何为图像添加单击和双击?
【发布时间】:2021-08-16 11:21:53
【问题描述】:

我正在尝试实现一个键盘 UI。在键盘中,+(plus)0(zero) 选项放置在单个图像图标上。所以我需要在 UI 上显示 0 进行单击,而双击我需要在 UI 上显示 +

我的代码

<Image 
    Grid.Column="1"
    Source="ic_zero_xx.png"
    Style="{StaticResource KeypadImageStyle}">
    <Image.GestureRecognizers>
        <TapGestureRecognizer
            Tapped="ZeroTapped"
            NumberOfTapsRequired="1">
        </TapGestureRecognizer>
    </Image.GestureRecognizers>
</Image>

private void ZeroTapped(object sender, EventArgs e)
{
    phonenumber_label.Text = "0";
}

如何在一张图片上同时提及 2 个不同的点按?

【问题讨论】:

    标签: image xamarin.forms gesture-recognition


    【解决方案1】:

    我们可以在该图像上添加两个TapGestureRecognizer,一个用于单击,另一个用于双击。

    xaml

     <Image >
         <Image.GestureRecognizers>
             <TapGestureRecognizer Tapped="TapGestureRecognizer_Single" NumberOfTapsRequired="1"/>
             <TapGestureRecognizer Tapped="TapGestureRecognizer_Double" NumberOfTapsRequired="2"/>
         </Image.GestureRecognizers>
     </Image>
    

    后面的代码

      private void TapGestureRecognizer_Single(object sender, EventArgs e)
      {
          label.Text = "0";
      }
    
      private void TapGestureRecognizer_Double(object sender, EventArgs e)
      {
          label.Text = "+";
      }
    

    【讨论】:

      【解决方案2】:

      我认为你可以使用计时器如果用户在 150 毫秒内点击两次,那么它就是双击。

      int Tapped=0;
      private void ZeroTapped(object sender,EventArgs e)
      {
          if(Tapped==0)
          {
              Device.StartTime(TimeSpan.FromMillSeconds(150),()=>
              {
                  if(Tapped=1)
                  {
                      //1 tap.
                  }
                  else
                  {
                       //double tap.
                  }
                  Tapped=0;
      
                  return false;
              }
          }
          else
          {
              Tapped++;
          }
      }
      

      【讨论】:

      • 我在这方面缺少什么?
      • @SreejithSree 抱歉,我忘记了一些代码,现在更新它。
      猜你喜欢
      • 1970-01-01
      • 2012-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-13
      • 1970-01-01
      • 2020-01-15
      相关资源
      最近更新 更多