Продолжайте выполнять действие, пока кнопка нажата после длительного нажатия - PullRequest
0 голосов
/ 13 января 2019

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

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

Большое спасибо, ребята:)

1 Ответ

0 голосов
/ 13 января 2019

Это невозможно с view.setOnLongClickListener(), потому что OnLongClickListener имеет очень специфический способ работы. Как только пройдет достаточно времени, слушатель активируется и код будет запущен.

То, что вы хотите, это использовать view.setOnTouchListener(). Таким образом, вы можете установить таймер, когда он обнаружит MotionEvent.ACTION_DOWN. Как только таймер станет достаточно длинным, чтобы равняться длинному щелчку, вы можете несколько раз активировать код изменения цвета, пока OnTouchListener не обнаружит MotionEvent.ACTION_UP. Вот когда вы можете остановить изменение цвета кода.

...