Подтвердить что ты не робот

Android "салфетки" против "броска"

В разделе разработчика Android-разработчиков используется термин "салфетка" .
В разделе
используется термин "fling" .

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

Детали перетаскивания, прокрутки или броска

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

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

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

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

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