C# 查看时双击事件
如何在Xamarin.Android中检测C# 查看时双击事件,c#,android,xamarin,xamarin.android,C#,Android,Xamarin,Xamarin.android,如何在Xamarin.Android中检测视图的双击事件?我的TouchListener失败。 有一种说法说双击不是安卓模式 对于原生Android(Java),有一个链接,但我想在Xamarin(C#)中这样做。您问题中的第一个链接已经包含了。遗憾的是,这不是公认的答案。正确答案的C#端口为: public class DoubleTappableView : View { private readonly GestureDetector _gestureDetector;
视图的双击事件?我的TouchListener
失败。
有一种说法说双击不是安卓模式
对于原生Android(Java),有一个链接,但我想在Xamarin(C#)中这样做。您问题中的第一个链接已经包含了。遗憾的是,这不是公认的答案。正确答案的C#端口为:
public class DoubleTappableView : View
{
private readonly GestureDetector _gestureDetector;
public DoubleTappableView(Context context, IAttributeSet attrs)
: base(context, attrs)
{
_gestureDetector = new GestureDetector(context, new GestureListener());
}
public override bool OnTouchEvent(MotionEvent e)
{
return _gestureDetector.OnTouchEvent(e);
}
private class GestureListener : GestureDetector.SimpleOnGestureListener
{
public override bool OnDown(MotionEvent e)
{
return true;
}
public override bool OnDoubleTap(MotionEvent e)
{
//TODO: Add double tap logic here
return true;
}
}
}
在c语言中完成这项任务太容易了。你是新来的,所以我给你一个确切的答案
首先,您不必为此创建新的自定义视图
创建一个类
private class GestureListener : GestureDetector.SimpleOnGestureListener
{
public override bool OnDown(MotionEvent e)
{
return true;
}
public override bool OnDoubleTap(MotionEvent e)
{
return true;
}
}
现在只需编写以下代码
GestureDetector _gestureDetector = new GestureDetector (_context, new GestureListener ());
_gestureDetector.DoubleTap += (object sender, GestureDetector.DoubleTapEventArgs e) => {
//apply double tap code here
};
//apply touch to your view
View1.Touch += (object sender, View.TouchEventArgs e) => {
_gestureDetector.OnTouchEvent (e.Event);
};
我希望这对你有帮助。谢谢。我想使双击事件与视图相同。在我的活动或片段中单击。所以我可以在我的项目中使用它。请指导我。这其实很简单,只需在这个视图中添加一个事件,并在OnDoubleTap方法中提升它。但是,没有必要这样做。上面的代码工作得很好,没有必要再添加一层,你能告诉我怎么做吗?我也不想创建自定义视图。我只想使用Android Views,它在实现和引发事件方面的复杂性几乎为零(而且有很多关于如何实现的教程)。向这个类添加一个事件,创建它的EventArgs并在OnDoubleTap中提升它,提供你想要的任何数据。我再说一遍,在这里添加一个事件并没有多大帮助。救了我的命!谢谢