Сенсорные жесты. Свайп — подробное руководство по мобильной клавиатуре (2019) Как отключить свайп вверх при включении телефона

Все перечисленные ниже функции протестированы на Android 9.0 Pie. В других версиях ОС или сторонних оболочках некоторые жесты могут работать иначе или не работать совсем.

1. Двойной свайп вниз от границы экрана - полное выдвижение панели настроек

Стандартный свайп вниз от верхней границы экрана показывает только уведомления. Чтобы выдвинуть всю верхнюю панель и получить доступ к быстрым настройкам системы, нужно делать ещё один свайп. Но вы можете заменить эти два жеста одним - точно таким же, но выполненным двумя пальцами. Такой двойной свайп выдвигает панель целиком.

2. Долгое нажатие на уведомление - быстрый доступ к настройкам программы

Если одна из программ начинает постоянно присылать уведомления, возникает острое желание уменьшить их количество или просто отключить. Для этого приходится открывать приложение и копаться в нём в поисках нужных настроек. Но можно просто нажать на уведомление и удерживать палец несколько секунд - появится кнопка для быстрого доступа к нужным настройкам.


3. Горизонтальные свайпы вдоль адресной строки - перелистывание вкладок в Chrome

Чтобы переключиться между вкладками Chrome, нужно сначала нажать на цифру с количеством вкладок, а затем выбрать нужную из них. Но есть альтернативный способ, с помощью которого удобно переходить на соседние вкладки. Достаточно делать свайпы вправо или влево, скользя пальцем по адресной строке.


4. Долгое нажатие кнопки отключения - переход в безопасный режим

Если устройство начинает тормозить, а перезагрузка не помогает, уместно протестировать его работу в безопасном режиме. В этом состоянии на аппарат не влияют сторонние программы, поэтому вызванные ими проблемы проще устранить. Чтобы перейти в безопасный режим, зажмите клавишу питания и удерживайте, пока на дисплее не появится кнопка «Отключить питание». Затем задержите касание на ней - через секунду увидите предложение перейти в безопасный режим.


5. Щипок и долгое нажатие в Google Photos - удобное управление снимками

Жесты в значительно упрощают использование смартфона. К примеру, вы можете быстро менять формат отображения снимков щипком, даже не заходя в дополнительное меню. Достаточно сводить и разводить два пальца поверх списка фотографий, и приложение будет переключать вид: обычный, по дням, по месяцам, по годам.


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


6. Двойное нажатие на карте и вертикальные свайпы - изменение масштаба в Google Maps

Масштабировать карту традиционным жестом - щипком - не очень-то удобно на ходу, когда вы держите смартфон одной рукой. Разработчики учли этот нюанс и добавили альтернативный способ. Чтобы изменить размер карты одним пальцем, быстро нажмите на неё дважды и, не отрывая пальца, проведите им вверх или вниз. Масштаб будет меняться.


7. Тройное нажатие и свайпы - масштабирование интерфейса и изображений

Если захотите быстро рассмотреть мелкий фрагмент снимка или прочесть крохотный шрифт сайта, на котором стандартное масштабирование не работает, можете воспользоваться спрятанным жестом. Для этого надо нажать трижды на экран и, не поднимая пальца, поделать свайпы в разные стороны. Но способ сработает, если предварительно вы активируете опцию «Жесты для увеличения» в разделе «Специальные возможности» в настройках смартфона.


8. Горизонтальные свайпы вдоль кнопки пробела - управление курсором в клавиатуре Google

Когда в набранный текст закрадывается опечатка, приходится попадать пальцем в нужное место между мелких букв, чтобы её исправить. Это, мягко говоря, не очень просто. К счастью, вы можете управлять курсором гораздо более удобным способом. Просто скользите пальцем по пробелу, и курсор будет перемещаться вдоль текста.


Возможно, вы знаете другие не совсем очевидные жесты? Делитесь в комментариях!

Рассказывая о различных возможностях устройств на базе ОС Android, мы нередко употребляем такое необычное словечко как «свайп». Оказалось, что многие пользователи не знают его значения. Восполним этот пробел.

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

Важно при этом отметить, что слово «свайп» в данном смысле можно употреблять по отношению к любому девайсу, который поддерживает такие движения пальцем по экрану, а не только на ОС Android. Так, движения по экрану на устройствах Apple (iPhone, iPad) также именуются свайпом.

Второе значение — название клавиатуры Swype, которая позволяет вводить текст на экране смартфона или планшета, не отрывая пальца. Создателем клавиатуры Swype (от англ. swipe - проводить не отрывая, скользить и type - печатать текст) является Cliff Kushler.

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

Допустим, вы стали обладателем новенького смартфона. Впереди вас ждет увлекательное «путешествие» по разделам меню, в котором можно найти массу всего интересного. Помимо этого пользователей также интересуют термины, так или иначе связанные с сенсорными устройствами. К примеру, что такое свайп? Знают не все, а между тем, сталкиваются с этим чуть ли не ежедневно, а то и ежечасно.

Swype (от англ. swipe - проводить не отрывая + type - набирать текст) — торговая марка, которая используется компанией Swype Inc. для обозначения способа ввода текста таким образом, при котором палец не отрывается от клавиатуры. Считается, что в этом случае пользователь способен набрать куда больше слов за тот же промежуток времени по сравнению с клавиатурой, которая не использует указанный способ ввода текста.

Пример на базе клавиатуры Gboard:

Обратите внимание, что система способна автоматически подбирать слова (автоподбор).

Этот способ ввода можно включить/отключить через настройки клавиатуры. На примере того же приложения Gboard — «Непрерывный ввод»:

Интересно, что создателем способа написания текста является тот же самый человек, который когда-то придумал систему ввода текста T9.

Однако выше — лишь одно значения слова «свайп», ведь имеется еще одно от англ. swipe — проводить не отрывая. Что это значит? Значит, что свайп — провести пальцем по экрану смартфона. К примеру, если вам необходимо открыть панель быстрого доступа или так называемую шторку, вы должны сделать свайп от верхней части экрана к нижней, то есть провести пальцем сверху вниз:

  • Свайп влево — провести пальцем по экрану влево.
  • Свайп вправо — провести пальцем по экрану вправо.
  • Свайп вниз — провести пальцем по экрану вниз.
  • Свайп вверх — провести пальцем по экрану вверх.

Термин gesture — способ объединить движения пальцем по экрану для запуска какого-то действия; движение пальцем в таком случае используется вместо просто касания или клика. Полное касание (complete touch) или mouse — move-capturing функция — нужна для того, чтобы жесты регистрировались и были абсолютно правильными. Сегодня хорошая поддержка этой функции есть только в браузерах Safari и Android.

Если в твоем веб-приложении пользователю нужно использовать жесты, важно научить его правильным действиям — при помощи справки, анимированных примеров или какого-нибудь другого вида подсказок (рисунок 8.5).

Рис. 8.5. Google Fast Flip новый просмотрищик, использующий жесты на iPhone и Android устройств. Слева вы увидите предупреждающий диалог с инструкциями о том, как его использовать. Вы увидите инструкции только один раз.

Жест Swipe

Жест swipe (также известен как flip) — технология для тач-браузеров, обычно используется для перемещения контента вперед-назад. Этот жест используется, например, во многих фото-галереях для смены выведенного на экран изображения и в презентациях для перелистывания слайдов. Суть жеста — простое движение пальцем по оси Х слева направо (горизонтальный swipe) или по оси Y сверху вниз (вертикальный swipe). swipe-жест поддерживается практически в каждом сенсорном устройстве, так как осуществляется одним пальцем.

Для перехвата swipe-действия нет специального стандартного события, поэтому будем эмулировать его, используя имеющиеся стандартные события

В устройствах Symbian 5-го поколения если вместо курсора использовать палец, то для событий mouse down, move и up получаются довольно странные результаты. Событие генерируется только один раз во время действия пальцем «перетащить» (drag), а событие вообще не срабатывает, если палец перемещен из точки начальных mouse-down координат. Поэтому, для обнаружения swipe в некоторых ситуациях нужны разные подходы.

Последовательность действий:

  • Перехват события (или ontouchstart в iPhone и других совместимых браузерах) и старт записи жеста.
  • Перехват (или ontouchmove в iPhone и браузерах с необходимой поддержкой) и продолжение записи жеста, если перемещение по оси Х (или Y) происходит в пределах определенного порога. Отмена жеста, если перемещение происходит по другой оси.
  • Перехват onmouseup (или ontouchend в iPhone и браузерах с необходимой поддержкой) и, если в этот момент жест продолжался (был активным) и разница между исходными и конечными координатами больше, чем определенная константа - определите swipe в одном направлении.
  • Последний пункт может быть заменен проверкой жеста на-лету внутри события onmousemove.

    Если ты используешь в работе jQuery, можно для обнаружения горизонтального жеста swipe на устройствах iPhone использовать бесплатный плагин отсюда http://plugins.jquery.com/project/swipe .

    При помощи следующего кода мы можем создать объектно-ориентированную библиотеку для обнаружения swipe (совместимо iPhone, Android и другими устройствами):

    /** Creates a swipe gesture event handler */ function MobiSwipe(id) { // Constants this.HORIZONTAL = 1; this.VERTICAL = 2; this.AXIS_THRESHOLD = 30; // The user will not define a perfect line this.GESTURE_DELTA = 60; // The min delta in the axis to fire the gesture // Public members this.direction = this.HORIZONTAL; this.element = document.getElementById(id); this.onswiperight = null; this.onswipeleft = null; this.onswipeup = null; this.onswipedown = null; this.inGesture = false; // Private members this._originalX = 0 this._originalY = 0 var _this = this; // Makes the element clickable on iPhone this.element.onclick = function() {void(0)}; var mousedown = function(event) { // Finger press event.preventDefault(); _this.inGesture = true; _this._originalX = (event.touches) ? event.touches.pageX: event.pageX; _this._originalY = (event.touches) ? event.touches.pageY: event.pageY; // Only for iPhone if (event.touches && event.touches.length!=1) { _this.inGesture = false; // Cancel gesture on multiple touch } }; var mousemove = function(event) { // Finger moving event.preventDefault(); var delta = 0; // Get coordinates using iPhone or standard technique var currentX = (event.touches) ? event.touches.pageX: event.pageX; var currentY = (event.touches) ? event.touches.pageY: event.pageY; // Check if the user is still in line with the axis if (_this.inGesture) { if ((_this.direction==_this.HORIZONTAL)) { delta = Math.abs(currentY-_this._originalY); } else { delta = Math.abs(currentX-_this._originalX); } if (delta >_this.AXIS_THRESHOLD) { // Cancel the gesture, the user is moving in the other axis _this.inGesture = false; } } // Check if we can consider it a swipe if (_this.inGesture) { if (_this.direction==_this.HORIZONTAL) { delta = Math.abs(currentX-_this._originalX); if (currentX>_this._originalX) { direction = 0; } else { direction = 1; } } else { delta = Math.abs(currentY-_this._originalY); if (currentY>_this._originalY) { direction = 2; } else { direction = 3; } } if (delta >= _this.GESTURE_DELTA) { // Gesture detected! var handler = null; switch(direction) { case 0: handler = _this.onswiperight; break; case 1: handler = _this.onswipeleft; break; case 2: handler = _this.onswipedown; break; case 3: handler = _this.onswipeup; break; } if (handler!=null) { // Call to the callback with the optional delta handler(delta); } _this.inGesture = false; } } }; // iPhone and Android"s events this.element.addEventListener("touchstart", mousedown, false); this.element.addEventListener("touchmove", mousemove, false); this.element.addEventListener("touchcancel", function() { _this.inGesture = false; }, false); // We should also assign our mousedown and mousemove functions to // standard events on compatible devices }

    Вот простой пример использования нашей бибилотеки swipe.js с с горизонтальным обнаружением swipe и другим с вертикальным обнаружением:

    Swipe Gesture Detection window.onload = function() { var swipev = new MobiSwipe("vertical"); swipev.direction = swipev.VERTICAL; swipev.onswipedown = function() { alert("down"); }; swipev.onswipeup = function() { alert("up"); }; var swipeh = new MobiSwipe("horizontal"); swipeh.direction = swipeh.HORIZONTAL; swipeh.onswiperight = function() { alert("right"); }; swipeh.onswipeleft = function() { alert("left"); }; } Vertical Swipe Horizontal Swipe

    Во многих сенсорных устройствах жест «перетащить» (drag) используется для прокрутки содержимого страницы и, при этом, не поддерживается функция preventDefault (о функции предотвращения поведения по умолчанию мы говорили чуть ранее в этой главе). Именно поэтому мы должны помимо жеста swipe рассмотреть и другие доступные способы навигации.

    Жесты машстабирования и поворота

    Когда iPhone только появился, самыми крутыми функциями в нем были именно жесты изменения масштаба и поворота. Используя жест pinching (сдвигая и раздвигая два пальца в щепотке) пользователь мог увеличить или уменьшить масштаб контента — это, как правило, изображение — на странице, а поворачивая два пальца по кругу изображение можно повернуть.

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

    К счастью, начиная с iOS 2.0 эти жесты можно обнаружить не прибегая с низкоуровневой математике в тач-событиях. В таблице 8.35 перечислены три расширения WebKit, которые доступны в качестве событий. В браузере Android также добавлена поддержка этих событий.

    Для масштабирования и поворота используются эти же события. Все три получают параметр GestureEvent. У этого параметра есть типичные для события свойства, а также дополнительные свойства scale и rotation.

    Свойство scale определяет расстояние между двумя пальцами как множитель с плавающей точкой от начала дистанции, где было начало жеста. Если значение больше 1.0, значит это открытый pinch (увеличение), а если значение 1.0 — pinch закрытия (уменьшение).

    rotation дает значение (в градусах) дельты (расстояния) вращения от начальной точки. Если пользователь вращает объект по часовой стрелке, то мы получаем положительное значение, а если против — то значение будет отрицательным.

    Я знаю, что ты сейчас думаешь: «Вращение и изменение масштаба — это отлично, но какой нам от них толк, если мы работаем с HTML?». Здесь нам приходят на помощь CSS расширения для Safari на iOS (и в других браузеров с соответствующей поддержкой) с одним свойством и двумя функциями для управлением его значением: rotate и scale.

    Функция rotate получает параметр в градусах и нам нужно определить deg unit после числа (например, rotate(90deg)). Узнать это мы можем из скрипта при помощи element.style.webkitTransform.

    Давай рассмотри простой пример:

    Gesture Management function gesture(event) { // We round values with two decimals event.target.innerHTML = "Rotation: " + Math.round(event.rotation*100)/100 + " Scale: " + Math.round(event.scale*100)/100; // We apply the transform functions to the element event.target.style.webkitTransform = "rotate(" + event.rotation%360 + "deg)" + " scale(" + event.scale + ")"; }

    Как работает пример можешь увидеть на Рисунке 8-6. На совместимых устройствах ты можешь двумя пальцами поворачивать и масштабировать (вместе со всем содержимым). Только вот в чем проблема? Стиль преобразования всегда применяется к исходному элементу. Так, если мы применим к элементу масштаб 2.0, а потом еще раз увеличим на 0.5, то новое значение будет 0.5, а не 1.0, как можно было бы ожидать.

    Рис. 8.6. Сочетая сенсорные события с CSS трансформациями, можно вращать и масштабировать элементы на своем сайте.

    Для типичного zoom-rotate поведения мы должны заменить функцию на следующее:

    var rotation = 0; var scale = 1; function gesture(event) { event.target.innerHTML = "Rotation: " + Math.round((event.rotation+rotation)*100)/100 + " Scale: " + Math.round((event.scale*scale)*100)/100; event.target.style.webkitTransform = "rotate(" + (event.rotation+rotation)%360 + "deg)" + " scale(" + event.scale*scale + ")"; } function gestureend(event) { rotation = event.rotation+rotation; scale = event.scale*scale; }

    Не видно виртуальной кнопки «Домой»? Есть жест для её возвращения. Читайте об этих и других возможностях ниже.

    Быстрый вариант работы с быстрыми настройками

    При свайпе (нажать и потянуть) вниз, сверху экрана на разблокированном Android-устройстве появляется небольшой ряд кнопок поверх разных уведомлений (или в верхнем углу экрана на версиях до Nougat). Это «быстрые настройки» - серия кнопок, по одному нажатию на которые можно активировать и деактивировать опции вроде сети Wi-Fi, фонарика, режима «В самолёте» и т.д.

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

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

    Свайп для возвращения кнопки «Домой»

    Бывает неприятно, когда смотришь видео или делаешь ещё что-то в полноэкранном режиме на Android, а виртуальная кнопка «Домой» пропадает без видимых причин. Зачастую она возвращается при нажатии пальцем на экран. Это срабатывает не всегда, в зависимости от используемого приложения. Например, в приложении нажатие на экран остановит воспроизведение видео, но не вернёт «Домой».

    Если кнопка «Домой» исчезла, сделайте свайп сверху экрана. Внизу появятся три навигационные сенсорные кнопки, одной из них будет «Домой».

    Двойное нажатие для запуска камеры

    Быть может, нажатие на физические кнопки не считается жестом, но данная подсказка слишком удобна, чтобы её не упомянуть.

    Можно в любой момент запустить Камеру в Android, даже когда аппарат разблокирован и открыто приложение. Делается это двойным нажатием на кнопку включения питания (если установлена версия Android Lollipop и старше).

    Тут проявляется контраст с операционной системой , где нет ярлыка доступа к камере в разблокированном состоянии, так что нужно запускать приложение Камера и рисковать упустить мимолётный момент.

    Новый вид в приложении Карты

    Приложение Карты для Android предлагает столько насыщенной информации, что можно забыть о существовании других вариантов просмотра, имеющихся в нём. Проведите двумя пальцами вниз по экрану, чтобы вращать изображение в трёхмерном пространстве, в том числе со зданиями в 3D (в зависимости от города).

    Для возвращения в плоский режим отображения проведите двумя пальцами вверх по экрану.

    Потянуть для обновления страницы в Chrome

    Поначалу кажется, что нет способа быстрого обновления страниц в браузере Chrome на Android. Нужно открыть главное меню и нажать на кнопку в правом верхнем углу.

    И всё же, есть более простой вариант выполнения этого же действия: просто потяните открытую страницы пальцем вниз.

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

    Свайп по адресной строке для изменения вкладки Chrome

    Если кнопки обновления страницы в Chrome нет, то небольшая кнопка «Вкладки» наверху экрана имеется, но есть более простой способ переключать вкладки, чем пытаться попасть по этой кнопке.

    Сделайте свайп в любую сторону по адресной строке Chrome. Свайп вправо открывает предыдущую вкладку, влево следующую.

    Свайп по клавише «Пробел» для перемещения курсора

    При переходе со смартфонов на Android недостаёт увеличительного стекла, которое появляется при нажатии и удержании редактируемого слова.

    Однако у Android есть собственный ответ на увеличительное стекло iOS. На стандартной клавиатуре системы можно двигать курсор, скользя пальцем по клавише «Пробел». Пусть это не столь элегантное решение, но и оно достаточно удобное.

    Для использования этой возможности нужно установить правильные настройки. Нажмите Настройки > Язык и ввод > Клавиатура Google > Непрерывный ввод > Включить управление курсором .

    Свайп влево от кнопки Backspace для удаления слов

    Много раз нажимать на кнопку Backspace на клавиатуре для удаления слов или целых абзацев утомительно, так что на помощь снова приходят жесты.

    Нажмите на кнопку Backspace и тяните влево. Android начинает выделять текст слева от курсора. Когда нужная часть для удаления выделена, отпустите кнопку. Если передумали удалять, не отпуская кнопку ведите пальцем вправо.