Как я могу поддерживать жест с одним указателем, когда включен режим изучения касанием?
У меня есть пользовательское представление, которое фиксирует подпись пользователя ( Джон Хэнкок). Я хочу, чтобы наше приложение было как можно более доступным, поэтому я делаю все возможное, чтобы оптимизировать наши экраны для TalkBack и Explore-by-Touch. Поскольку Explore-by-Touch изменяет все жесты одним пальцем на жесты двумя пальцами, это нарушает пользовательский вид подписи.
Мне бы хотелось, чтобы Explore-by-Touch объявлял описание содержимого представления при наведении курсора, а затем включал его, когда пользователь дважды нажимал. Это позволит им рисовать поверх представления одним указателем, как обычный пользователь.
Я искал, но трудно найти подробную документацию по библиотекам специальных возможностей Android. Есть идеи?
1 ответ
Когда функция "Изучение касанием" включена, события касания одним пальцем преобразуются в события зависания. Вы можете наблюдать эти события, добавив OnHoverListener к вашему представлению или переопределив View.onHoverEvent.
Как только вы перехватываете эти события, вы обычно можете просто передать их в свой обычный код обработки касания и сопоставить действия при наведении на действия касания (как показано ниже).
@Override
public boolean onHoverEvent(MotionEvent event) {
if (mAccessibilityManager.isTouchExplorationEnabled()) {
return onTouchEvent(event);
} else {
return super.onHoverEvent(event);
}
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_HOVER_ENTER:
return handleDown(event);
case MotionEvent.ACTION_MOVE:
case MotionEvent.ACTION_HOVER_MOVE:
return handleMove(event);
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_HOVER_EXIT:
return handleUp(event);
}
return false;
}