Motion Event Action Move не работает в эмуляторе андроид студии - PullRequest
0 голосов
/ 28 января 2019

У меня проблема с эмулятором Android, у меня есть пользовательское представление и для управления событием касания, которое я использую onTochEvent в своем классе.поэтому для различных видов событий (например: «вниз, вверх, двигайся ...») я исправил дело.Вниз и вверх эмулятор не показывает никаких проблем, но с движением нет никаких действий.на моем телефоне все просто отлично!Я пробовал разные виды API тоже, но не работал.это мой код onTouch:

@Override
public boolean onTouchEvent(MotionEvent event) {
    boolean result = super.onTouchEvent(event);
    switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            xd = event.getX();
            yd = event.getY();
            break;
        case MotionEvent.ACTION_MOVE:
            float xm = event.getX();
            float ym = event.getY();
            if(card.left < xm && card.right > xm){
                if(card.top < ym && card.bottom > ym){
                    card.top += yd - ym;
                    card.left += xd - xm;
                    card.right += xd - xm;
                    card.bottom += yd - ym;
                    postInvalidate();
                }
            }
            break;
        case MotionEvent.ACTION_UP:
            break;
        case MotionEvent.ACTION_CANCEL:
            break;
        case MotionEvent.ACTION_OUTSIDE:
            break;
        default:
    }
    return result;
}

Android Studio 3.3 API 24. Спасибо.

1 Ответ

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

Представлению необходимо return true при первом событии ACTION_DOWN, только тогда оно получит последовательные события касания.

возвращает super.onTouchEvent(event); только тогда, когда вы не хотите обрабатывать какие-либо особые события касания.

...