xamarin 有没有办法用SkiaSharp实现长按手势?

41zrol4v  于 2022-12-07  发布在  其他
关注(0)|答案(1)|浏览(147)

我在Xamarin Forms应用程序上使用Skiasharp。通过SKTouchAction,我试图捕获SKTouchAction.Pressed和SKTouchAction.Released的持续时间,并查找手势是否为长按。但问题是SKTouchAction.Released在Android上未触发。

protected override void OnTouch(SKTouchEventArgs e)
{   
  switch (e.ActionType)            
  {
    case SKTouchAction.Moved:
    break;
    case SKTouchAction.Pressed:
   //save current time here
   break;
   case SKTouchAction.Released:
   //Compare time here to check long press
   break;
 }
}
bsxbgnwa

bsxbgnwa1#

github上有一个similar issue,看来你需要让操作系统知道你想继续接收触摸事件,比如:

protected override void OnTouch(SKTouchEventArgs e)
{   
  e.Handled = true;
  switch (e.ActionType)            
  {
      case SKTouchAction.Moved:
      break;
      case SKTouchAction.Pressed:
     //save current time here
     break;
     case SKTouchAction.Released:
     //Compare time here to check long press
     break;
  }
}

此外,还可以参考this case

相关问题