【问题标题】:Xamarin Drag and drop with a drop zoneXamarin 使用拖放区拖放
【发布时间】:2020-06-01 17:06:17
【问题描述】:

我正在尝试实现拖放来创建一个语法练习,其中您必须用正确的单词完成句子,将正确的答案拖到正确的位置(如下图所示)。

我尝试通过使用自定义渲染器来实现这一点,创建一些扩展的原生视图来覆盖实现拖放的方法(如OnTouchEvent for Android,TouchesBeganTouchesMovedTouchesEnded for iOS )。在这两个平台中,我都可以拖动自定义本机视图,但只有在 iOS 中,我才能将它们拖放到我想要的特定目标视图中。在 Android 中,它似乎与 Xamarin Forms 视图坐标和 android 自定义渲染器中使用的本机 Android 坐标发生冲突。即使我尝试“调整”它们(通过手动插入我想要放置视图的坐标),检查 if(destinationRect.Contains(myTouchX, myTouchY) 似乎也无法正常工作。

此处的 Git 存储库示例:Git example

有人知道怎么解决吗? 或者有谁知道如何以任何其他最简单的方式实现拖放(使用适当的拖放区进行检查)?

【问题讨论】:

    标签: xamarin xamarin.forms drag-and-drop coordinates custom-renderer


    【解决方案1】:

    在 Android 中,它提供了View.StartDrag(ClipData, View+DragShadowBuilder, Object, Int32) Method 方法来启动拖放操作。

    您可以查看 MS 文档。

    View.StartDrag(ClipData, View+DragShadowBuilder, Object, Int32) Method: https://docs.microsoft.com/en-us/dotnet/api/android.views.view.startdrag?view=xamarin-android-sdk-9

    View.StartDragAndDrop(ClipData, View+DragShadowBuilder, Object, Int32) Method: https://docs.microsoft.com/en-us/dotnet/api/android.views.view.startdraganddrop?view=xamarin-android-sdk-9

    根据我的搜索,此博客对这种方法会有所帮助。 https://pumpingco.de/blog/adding-drag-and-drop-to-your-android-application-with-xamarin/

    您可以从 GitHub 下载源文件。 https://github.com/Pumpingcode/Xamarin-DragAndDropDemo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-24
      • 1970-01-01
      • 2019-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多