Как заставить вертикальный свайп двумя пальцами перемещать горизонтальный ползунок влево или вправо?

#android #accessibility #talkback

Вопрос:

У меня в приложении есть горизонтальный ползунок, и я хочу сделать так, чтобы, если у вас выбран ползунок, вы могли провести двумя пальцами вверх или вниз из любого места экрана (жест прокрутки вверх или вниз), чтобы переместить ползунок влево или вправо. Я не смог найти в Google ничего о том, как изменить поведение вертикального свайпа для разговора, и мне было интересно, есть ли на самом деле способ изменить это.

Ответ №1:

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

Но если вы действительно хотите это сделать — вашей корневой группе просмотра необходимо перехватывать события касания, если есть два пальца вниз, и она перемещается достаточно далеко, чтобы пройти квалификацию. Читать https://developer.android.com/training/gestures/viewgroup#intercept для объяснения того, как родительская группа представлений может украсть события касания у ребенка. Таким же образом ScrollView работает для прокрутки своего содержимого. На самом деле, поиск реализации AOSP в ScrollView дал бы вам хороший пример кода.