【发布时间】:2014-12-11 23:29:47
【问题描述】:
我正在创建一个应用程序,该应用程序允许用户使用 Xamarin.Forms 拖放以将一个图像放在另一个图像之上。
在 iOS 上,我通过为它创建一个自定义 ContentView 和一个自定义渲染器,设法将一个可行的手势识别器渲染器组合在一起,然后基于 GestureRecognizers 元素将本机手势识别器附加到自身。为此,我禁用了默认的 EventTracker 并实现了我自己的,重写了 GetNativeRecognizer 方法
在自定义渲染器中:
public InteractiveContentViewRenderer () : base ()
{
AutoTrack = false;
events = new InteractiveEventTracker (this);
}
在自定义事件跟踪器中:
public InteractiveEventTracker (IVisualElementRenderer renderer) : base (renderer)
{
this.Renderer = renderer;
}
protected override MonoTouch.UIKit.UIGestureRecognizer GetNativeRecognizer (Xamarin.Forms.IGestureRecognizer recognizer)
{
var gestureRecognizer = base.GetNativeRecognizer (recognizer);
if (gestureRecognizer == null) {
// here I find my own native recognizer and return it
}
}
然而,在 Android 上,到目前为止,我还没有想出如何实现同样的目标。 Android 中没有 EventTracker,我想我必须实现一些 Android 视图才能使其工作,但我目前还没有弄清楚。
有没有人设法在 Xamarin.Forms for Android 中破解触摸事件?我至少想知道 hack 的基本结构?
【问题讨论】:
标签: xamarin xamarin.android xamarin.forms