KeyEventCompat не поддерживается при сборке

Мой проект в настоящее время используется, но, похоже, я перешел на уровень 26 api - версия 26.0.2, я изо всех сил пытаюсь найти символ KeyEventCompat

import android.support.v4.view.KeyEventCompat;

Я пытаюсь понять, используя v7 но он не работает. Любая идея о том, как это сделать.

Пример использования:

case KeyEvent.KEYCODE_TAB:
    if (KeyEventCompat.hasNoModifiers(event)) {
        handled = arrowScroll(FOCUS_FORWARD);
    } else if (KeyEventCompat.hasModifiers(event, KeyEvent.META_SHIFT_ON)) {
        handled = arrowScroll(FOCUS_BACKWARD);
    }
    break;

Любая идея о том, как это сделать.

Спасибо

Ответы

Ответ 1

изменить это

if (KeyEventCompat.hasNoModifiers(event)) {
    handled = arrowScroll(FOCUS_FORWARD);
} else if (KeyEventCompat.hasModifiers(event, KeyEvent.META_SHIFT_ON)) {
    handled = arrowScroll(FOCUS_BACKWARD);
}

в

if (event.hasNoModifiers()) {
    handled = arrowScroll(FOCUS_FORWARD);
} else if (event.hasModifiers(KeyEvent.META_SHIFT_ON)) {
    handled = arrowScroll(FOCUS_BACKWARD);
}

Класс KeyEventCompat устарел на уровне API 26.0.0

Ответ 2

Так как вы поддерживаете API 19+, изменить ваш KeyEventCompat вызовы KeyEvent вызовы. Вы должны иметь возможность получить сопоставимую функциональность на уровне API.

Ответ 3

Я решил эту проблему KeyEventCompat, добавив эту строку в gradle сборки приложения (выше зависимости)

configurations.all {
    exclude group: 'com.google.code.gson'

    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '26.0.2'
            }
        }
    }
}