Android "салфетки" против "броска"
В разделе разработчика Android-разработчиков используется термин "салфетка" .
В разделе используется термин "fling" .
Являются ли эти термины синонимами? Из того, что я нашел, я считаю, что они есть, но нигде это не сказано явно так или иначе.
Тем не менее, если я хочу реализовать функциональность для "прокрутки", должен ли я реализовать onFling
в GestureDetector
?
Ответы
Ответ 1
onFling()
будет выполняться, когда пользователь совершает движение "сбрасывания", и указанное движение имеет скорость с ним, чтобы определить тип срабатывания. Однако, если пользователь просто касается устройства и медленно перемещается по экрану, это не считается броском, а ударом.
Это зависит от того, какой тип движения вы ожидаете от пользователей. Идеальным случаем было бы реализовать функцию onFling()
для захвата этого движения, а также реализовать onDrag()
и onDragFinished()
для захвата более тонких движений, которые все равно следует рассматривать как салфетки.
Ответ 2
Детали перетаскивания, прокрутки или броска
Действия разметки жестов различаются в зависимости от контекста. Скорость, с которой выполняется жест, является основным различием между Drag, Swipe и Fling.
- Перетаскивание: тонкий жест, более медленный, более контролируемый, как правило, имеет экранную цель.
- Размах: общий жест, быстрее, обычно не имеет целевого экрана.
- Fling: общий жест, без экранной цели.
Скорость удара влияет на то, что действие сразу обратимо.
- Салфетка становится броском, основанным на конечной скорости, и влияет ли затронутый элемент на порог (или точку, через которую действие может быть отменено).
- Перетаскивание поддерживает контакт с элементом, поэтому изменение направления жестов будет перетаскивать элемент обратно через порог.
- Сбрасывание движется с большей скоростью и удаляет контакт с элементом, когда он пересекает порог, не позволяя отменить действие.
из https://www.google.com/design/spec/patterns/gestures.html