Android Cannot resolve symbol KeyEventCompat(android.support.v4.view.KeyEventCompat找不到)

升级后compileSdkVersion为26,因为此时classpath 'com.android.tools.build:gradle:3.0.0',v4包的版本是27.0.0。 报KeyEventCompat类(项目中用到KeyEventCompat的hasNoModifiers等方法来做的ViewPager的懒加载)找不到,回看25.3.1版的v4包中此类是存在的,经确认KeyEventCompat类在27.0.0版本中是不存在的,最后查看源码才知道hasNoModifiers方法已经被KeyEvent实现了。

贴出解决此处修改的用于实现ViewPager懒加载方法的部分代码

public boolean executeKeyEvent(KeyEvent event) {
    boolean handled = false;
    if (event.getAction() == KeyEvent.ACTION_DOWN) {
        switch (event.getKeyCode()) {
        case KeyEvent.KEYCODE_DPAD_LEFT:
            handled = arrowScroll(FOCUS_LEFT);
            break;
        case KeyEvent.KEYCODE_DPAD_RIGHT:
            handled = arrowScroll(FOCUS_RIGHT);
            break;
        case KeyEvent.KEYCODE_TAB:
            if (Build.VERSION.SDK_INT >= 11) {
//报错地方
                // The focus finder had a bug handling FOCUS_FORWARD and FOCUS_BACKWARD
                // before Android 3.0. Ignore the tab key on those devices.
//              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);
                }
            }
            break;
        }
    }
    return handled;
}
上一篇 Android Bug调试工具推荐
下一篇 Android Support Library Packages
目录
文章列表
1 Spring Boot 基于DeferredResult的异步服务
Spring Boot 基于DeferredResult的异步服务
2
Android组件化开发+自定义路由框架
Android组件化开发+自定义路由框架
3
Spring Cloud Gateway自定义过滤器进行限流
Spring Cloud Gateway自定义过滤器进行限流
4
Vue或React项目代码相同运行出错采坑记录
Vue或React项目代码相同运行出错采坑记录
5
Spring Boot集成RocketMQ详解
Spring Boot集成RocketMQ详解
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。