构建时不支持 KeyEventCompat

KeyEventCompat not supported at build

我的项目目前正在使用,但似乎我已经移动到 api 级别 26 - 修订版 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;

关于如何让它发挥作用的任何想法。

谢谢

由于您支持 API 19 岁以上,请将您的 KeyEventCompat 通话更改为 KeyEvent 通话。您应该能够在 API 级别获得可比较的功能。

改变这个

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 class 在 API 级别 26.0.0

中被弃用

我通过将这一行添加到应用程序的构建中解决了这个 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'
            }
        }
    }
}