Android - проведите пальцем влево | вправо. обнаружение жеста

пытался добавить эту функцию "жестов" в свою первую программу, и почти каждый поиск, который я делал, приходил к этой теме:

Обнаружение жеста перелистывания в макете сетки

Мне удалось заставить его работать ... но в моем случае я не уверен, что это на 100% правильно.

В моем макете у меня есть 3 горизонтальных linearLayout, каждый из которых имеет 5 кнопок ... так что это 3 столбца по 5 кнопок ... в соответствии с потоком, который я должен был:

«Прикрепите прослушиватель жестов ко всем представлениям, которые вы добавляете в основной макет»;

это означает для всех 15 кнопок:

"button.setOnTouchListener (gestureListener);"

Разве я не могу просто сказать, что LinearLayouts с кнопками - это те, которые следят за жестами смахивания? Или из-за того, что они «спрятаны» на обратной стороне кнопок, этого сделать нельзя?

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

Итак ... просто ищу более простой способ обнаружения на моем экране свайпа вправо | осталось .. если он существует ..

заранее спасибо


person cornelyus    schedule 26.03.2011    source источник


Ответы (1)


Разве я не могу просто сказать, что LinearLayouts с кнопками - это те, которые следят за жестами смахивания? Или из-за того, что они «спрятаны» на обратной стороне кнопок, этого сделать нельзя?

Я думаю, что это именно та проблема, с которой вы столкнетесь, если не обнаружите смахивание по всем визуальным объектам.

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

Для обнаружения смахивания требуются начальное и конечное местоположения - если пользователь начинает и заканчивает на кнопках (которые не прослушивают смахивание), то свайп не будет обнаружен. Точно так же, начиная с кнопки и заканчивая «пробелом» (или наоборот), не будет обнаружено действительное смахивание, потому что только одна из начальных / конечных точек действительна для «обнаружения смахивания».

Лучший подход, который я могу придумать (хотя сам никогда не пробовал), - это использовать GestureOverlayView. Это позволяет вам иметь прозрачное наложение поверх фоновых представлений и может использоваться для обнаружения таких вещей, как «смахивание», без необходимости в базовых представлениях знать о жестах.

См. Это в ресурсах для разработчиков Жесты.

person Squonk    schedule 26.03.2011
comment
Привет .. Отличный ответ .. полностью прояснил для меня! Придется очень скоро взглянуть на GEstureOverlayView .. спасибо. - person cornelyus; 30.03.2011