MonoDroid单击代理和滑动检测

时间:2011-12-27 14:04:55

标签: delegates click xamarin.android swipe

我有一个带有按钮自定义图像的复选框。每当单击按钮时,我都使用click委托执行操作:

box.Click += { //do some stuff... }

这很有效。

但是,现在我已经被要求在此复选框中添加滑动检测(听起来很疯狂,但它确实对这个应用程序有意义。)

我使用我在Java中使用普通Android的标准方法添加了滑动检测:我将GestureDetector.SimpleOnGestureListener子类化,并且还实现了View.IOnTouchListener。

我将滑动检测添加到复选框,如下所示:

/*
SwipeListener implements View.IOnTouchListener
SwipeDetector is a subclass of GestureDetector.SimpleOnGestureListener
*/

SwipeListener listener = new SwipeListener(new GestureDetector(new SwipeDetector(this)));
box.SetOnTouchListener(listener);

当我这样做时,滑动效果很好。但点击代理不再被激活。我尝试将我的代码移动到我的SwipeDetector类,这似乎有效。

但后来我注意到我的复选框不再处于检查/取消检查状态,因此我的自定义图像从未改变过。

我知道这必须是简单的,但我没有看到它...在Android / MonoDroid中对视图(复选框)进行点击和滑动的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

我没有看到您的代码的猜测是您从OnTouch返回true,这意味着您已经消耗了该事件,并且不希望使用该事件进行任何进一步的处理。如果您希望触发其余事件,请尝试返回false。

http://developer.android.com/reference/android/view/View.OnTouchListener.html