我有以下实现来检测用户的手势,但它不起作用。
public class CSViewController : Java.Lang.Object, GestureDetector.IOnGestureListener
{
GestureDetector gestureDetector = null;
View myView;
public CSViewController (Context context, View myView)
{
this.context = context;
this.myView = myView;
//myView.Touch += async (object sender, View.TouchEventArgs e) => Console.WriteLine("touch");
gestureDetector = new GestureDetector(myView.Context,this);
}
public bool OnScroll (MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
{
Console.WriteLine("onscroll");
return false;
}
}但是,出于测试目的,我编写了以下代码,并且它可以工作。
myView.Touch += async (object sender, View.TouchEventArgs e) => Console.WriteLine("touch");在实现GestureDetector时,我哪里做错了?
发布于 2015-07-03 05:15:58
以下是解决方案:
我添加了以下代码,它可以正常工作
myView.Touch += (object sender, View.TouchEventArgs e) => _gestureDetector.OnTouchEvent(e.Event);以下是解决方案:
public class CSViewController : Java.Lang.Object, GestureDetector.IOnGestureListener
{
GestureDetector gestureDetector = null;
View myView;
public CSViewController (Context context, View myView)
{
this.context = context;
this.myView = myView;
myView.Touch += (object sender, View.TouchEventArgs e) => _gestureDetector.OnTouchEvent(e.Event);
gestureDetector = new GestureDetector(myView.Context,this);
}
public bool OnScroll (MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
{
Console.WriteLine("onscroll");
return false;
}
}https://stackoverflow.com/questions/31192548
复制相似问题