MonoDroid Click делегат и обнаружение пролистывания - PullRequest
0 голосов
/ 27 декабря 2011

У меня есть флажок с пользовательским изображением для кнопки.Я использовал делегат щелчка для выполнения действия при каждом нажатии кнопки:

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

Это прекрасно работает.

Однако теперь мне было предложено добавить обнаружение смахивания к этомуфлажок (звучит безумно, но на самом деле это имеет смысл для этого приложения).

Я добавил обнаружение смахивания, используя стандартные методы, к которым я привык в обычном Android в Java: я вложил в класс 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 голосов
/ 28 декабря 2011

Я полагаю, что, не увидев ваш код, вы возвращаете true из OnTouch, то есть вы использовали событие и не хотите, чтобы при его использовании выполнялась дальнейшая обработка. Попробуйте вернуть false, если хотите, чтобы остальная часть события сработала.

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

...