Android Studio升级3.0之后趟的坑

看了android studio3.0的特性分析的相关文章(https://mp.weixin.qq.com/s/2XmVG4mKEDX6-bvZ0vvmcw 等)后,决定升级(我当前版本是2.3.3).基于以往升级所遇的坑的经验,我在升级前详细搜索了查看了别人的升级之旅,避坑…嗯 呵呵呵
升级过程中遇到的一些问题,都能按找网上已有的方法解决
http://www.jb51.net/article/127071.htm
http://blog.csdn.net/qqcrazyboy/article/details/77900183

升级后 compileSdkVersion为26,因为此时classpath ‘com.android.tools.build:gradle:3.0.0’
此时v4包的版本是27.0.0 。 报bug了,KeyEventCompat类(我项目中用它的hasNoModifiers等方法来做的ViewPager的懒加载)找不到,回看25.3.1版的v4包中此类是存在的,于是各种找、切换各种版本号都无用,最后确认这个类在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) {
                        if (event.hasNoModifiers()) {
                            handled = arrowScroll(FOCUS_FORWARD);
                        } else if (event.hasModifiers(KeyEvent.META_SHIFT_ON)) {
                            handled = arrowScroll(FOCUS_BACKWARD);
                        }
                    }
                    break;
            }
        }
        return handled;
    }

你可能感兴趣的:(分享)