Xamarin pan 手势识别器没有给出准确的坐标

标签 xamarin xamarin.forms

我正在使用平移手势识别器进行一些测试。设置非常简单,我有一个 20x20 的框 View ,并通过相对布局进行设置。平移手势的处理程序

switch (args.StatusType)
            {
                case GestureStatus.Running:
                    box.TranslationX = box.X + args.TotalX;
                    box.TranslationY = box.Y + args.TotalY;
                    break;
                case GestureStatus.Completed:
                    box.TranslationX = 0;
                    box.TranslationY = 0;
                    break;
            }

所以它运行正常,但是当我尝试在屏幕上拖动 boxview 时,它没有正确转换值。当它试图重新绘制框时,它还会产生这种非常讨厌的闪烁效果。有没有更好的方法去做这件事?有没有办法摆脱闪烁?

最佳答案

好吧,如果你的盒子有 PanGestureRecognizer,闪烁效果只是因为 TotalX 和 TotalY 是相对于盒子的平移坐标。

尝试改变

box.TranslationX = box.X + args.TotalX;
box.TranslationY = box.Y + args.TotalY;

通过

box.TranslationX = box.TranslationX + args.TotalX;
box.TranslationY = box.TranslationY + args.TotalY;

它应该可以工作。

编辑:它只涉及 Xamarin Android,它对 UWP 的工作方式不同。

关于Xamarin pan 手势识别器没有给出准确的坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39458078/

相关文章:

c# - 确定 UIView 是否包含在屏幕边界内

Azure AD B2c Xamarin Form 永远不会静默登录

c# - json 字符串不适合我使用 Xamarin 创建的类

ios - Xamarin.forms.ios 上的共享按钮

xaml - Xamarin 表单从 ListView 绑定(bind)到 View 模型

c# - Monodroid 设计器缺少设备配置

xamarin - 在 Xamarin Forms 3.1 中,当使用带有 4 个标签的标签页时,如何防止 Android 上标签栏的 "sliding"效果?

c# - VS2017 和 VS2019 的主要 Activity 区别

xamarin - Xamarin.Forms 在 VS 上有设计器支持吗?

visual-studio - Xamarin Android 调试 : No compatible code running