web-dev-qa-db-fra.com

KeyEventCompat non pris en charge lors de la génération

Mon projet utilise actuellement, mais il semble que je suis passé au niveau 26 de l'API - révision 26.0.2, j'ai du mal à trouver le symbole KeyEventCompat

import Android.support.v4.view.KeyEventCompat;

J'essaie de comprendre en utilisant v7 mais ça ne marche pas. Toute idée sur la façon de le faire fonctionner.

Exemple d'utilisation:

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;

Toute idée sur la façon de le faire fonctionner.

Merci

23
Seb

change ça

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 la classe a été déconseillée au niveau API 26.0.0

59
Madhur

J'ai résolu ce problème KeyEventCompat en ajoutant cette ligne au grade de génération de l'application (dépendances ci-dessus)

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'
            }
        }
    }
}
0
itzo

Puisque vous prenez en charge l'API 19+, remplacez vos appels KeyEventCompat par des appels KeyEvent. Vous devriez pouvoir obtenir des fonctionnalités comparables à ce niveau d'API.

0
Chris Stillwell