Размах для выхода из режима погружения подхватывается событиями касания холста - PullRequest
0 голосов
/ 01 октября 2018

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

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

Как избежать обработки этих событий касания на холсте?

Класс SurfaceView

public class PEQSurfaceView extends SurfaceView implements 
SurfaceHolder.Callback
{

   @Override
   public void surfaceCreated(SurfaceHolder holder)
   {
       // make the GamePanel focusable so it can handle events
       requestFocus();
       setFocusable(true);
       setFocusableInTouchMode(true);
   }

   @Override
   public boolean onTouchEvent(MotionEvent event)
   {...}

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

1 Ответ

0 голосов
/ 01 октября 2018

Не уверен, что это будет соответствовать вашим ожиданиям, но в качестве предложения я бы сделал это следующим образом:
1) оставьте некоторую верхнюю область экрана для жеста перемещения без погружения.
2) затем в onTouchEvent метод проверки координаты Y, если она находится внутри этой верхней области (я думаю, что 10dp будет достаточно), затем верните false (это отключит обработку события в SurfaceView).

Так что если пользовательбудет swipe down справа от верхнего края экрана, это будет работать

Возможно, вам нужно будет установить некоторую переменную bool и установить ее значение true на ACTION DOWN внутри этой специальной области и отпустить ее на ACTION_UP и ACTION_CANCEL, затем внутри ACTION_MOVE, если это flag == true, тогда вам нужно вернуть true, потому что специальный жест еще не закончен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...