поймать жест пальцем, когда движение начинается с другого вида - PullRequest
0 голосов
/ 11 июля 2019

Я добавляю новый TextView к LinearLayout , затем пользователь начинает смахивать влево. Я ввел onTouch listener и начал слушать ACTION_MOVE, но он не получает вызван, потому что движение началось с соседнего завода. Как мне как-то заставить ACTION_MOVE отследить свайп?

Я попытался реализовать onTouch для линейного макета, но он не работает с дочерними представлениями.

public boolean onTouch(View v, MotionEvent event) {
    switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            x1 = event.getX();
            is_swipe = true;
            break;
        case MotionEvent.ACTION_MOVE:
            x2 = event.getX();
            float deltaX = x1 - x2;
            if (Math.abs(deltaX) > MIN_DISTANCE && is_swipe) {
                Toast.makeText(Chat_activity.this, "already met!", Toast.LENGTH_SHORT).show();
            } else if (deltaX > 0 && is_swipe) {
                text_time.setAlpha((1 - deltaX / MIN_DISTANCE));
                Toast.makeText(Chat_activity.this, "trying to fade!", Toast.LENGTH_SHORT).show();
            }
            break;
        case MotionEvent.ACTION_UP:
            is_swipe = false;
            break;
    }
    return true;
}

Я ожидал угасания тоста, но ничего не произошло.

Обратите внимание, что : x1 уже установлен в fab onTouchListener.

...