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