Android - проведите пальцем влево | вправо. обнаружение жестов - PullRequest
10 голосов
/ 26 марта 2011

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

Обнаружение жеста Fling на макете сетки

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

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

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

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

"button.setOnTouchListener (gestListener);"

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

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

Так что .. просто ищу более простой способ обнаружения на экране, чтобы провести пальцем вправо |осталось .. если оно существует ..

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

1 Ответ

15 голосов
/ 26 марта 2011

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

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...