Смахивание Android против броска

В разделе дизайна жестов для разработчиков Android используется термин "пролистывание".< br> В разделе для разработчиков используется термин "fling".

Являются ли эти термины синонимами? Судя по тому, что я нашел, я считаю, что они есть, но нигде прямо не сказано, так или иначе.

Тем не менее, если я хочу реализовать функциональность для «пролистывания», должен ли я реализовать onFling в GestureDetector?


person Sean Beach    schedule 03.04.2014    source источник


Ответы (2)


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

Все сводится к тому, какой тип движения вы ожидаете от пользователей. Идеальным случаем было бы реализовать функцию onFling() для захвата этого движения, а также реализовать onDrag() и onDragFinished() для захвата более тонких движений, которые по-прежнему следует считать свайпом.

person Adam Alyyan    schedule 03.04.2014
comment
Как насчет того, когда пользователь прокручивает? Судя по тому, что вы описали, прокрутка звучит так, как будто она включает в себя прокрутку. Это правда? - person Sean Beach; 03.04.2014
comment
Это правильно. Это следует той же логике, что пользователи могут прокручивать по-разному, поэтому реализация onFling и onDrag будет безопасно захватывать весь ввод. Кроме того, прокрутка обычно выполняется смахиванием или перелистыванием вверх или вниз, поэтому вы можете иметь проверки внутри этих функций, чтобы проверять направление движения и действовать соответствующим образом. - person Adam Alyyan; 03.04.2014

Перетащите, проведите или перетащите детали

Жесты смахивания различаются в зависимости от контекста. Скорость, с которой выполняется жест, является основным различием между Drag, Swipe и Fling.

  • Перетаскивание: тонкий жест, медленнее, более контролируемый, обычно имеет цель на экране.
  • Смахивание: грубый жест, более быстрый, обычно не имеет цели на экране.
  • Бросок: грубый жест без цели на экране

Скорость жеста влияет на то, является ли действие немедленно обратимым.

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

из https://www.google.com/design/spec/patterns/gestures.html.

person Fei Liang    schedule 14.08.2015