`
砺雪凝霜
  • 浏览: 152040 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

探究如何以jar包导入的形式使用RecyclerView

阅读更多

 探究如何以jar包导入的形式使用RecyclerView

 

      由于项目中要求使用RecyclerView,但是使用的Android系统是经过公司阉割过的,导致我们只能基于API15来build我们的项目,经过多次的调研发现,目前使用RecyclerView都是直接在build.gradle文件中配置好的jar信息,然后AS会自动下载好相应的jar包。

 

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:recyclerview-v7:22.1.1'
    compile 'com.android.support:appcompat-v7:22.1.1'
}

 这种方式使用起来会比较简单,但是缺点也比较多:

 

  (1)下载相应的jar特别慢,越~狱速度会快点

  (2) 每次使用都要去下载相应的jar,特别麻烦

  (3) 必须用API > 21SDK版本build才能使用

     我们的项目只能用API15,蛋疼死了。。。明明知道RecyclerView的强大功能,我只能看着别人使用。

     有没有直在项目中接导入RecyclerView的jar就能在低于API15上的环境上运行呢?

百度上我目前还没发现能成功的,即使成功build的版本也至少是API >= 21,经过多次爬坑,

终于成功了,下面分享给大家。

(1)先用SDKManager下载好support包(要使用RecyclerView需要v7和v4包)

下载support包

 

(2) 接着会在\sdk\extras\android\support\V7下找到RecyclerView文件,里面放着recyclerView的jar包和一些资源文件。

很多人都会很自然的去把libs下面的android-support-v7-recyclerview.jar放在一个新建好的项目中,以为这样就可以使用RecyclerView了,但是后面多次尝试后发现都失败了。

查看源码得知,失败的原因有:

(1) recyclerView引入了support V4中的类,自然要导入V4包(走到这一步其实还不行)

(2)recyclerView中引入了R.Styleable类,这不就是自定义属性XML资源生成的类吗?坑爹的google并没有帮我们把这些资源自动载入jar包中,此时终于明白了为什么光导入jar包其实是不行的,或许引入上面RecyclerView文件夹下的资源文件,生成对应的资源类,然后以一个lib库的形式导入主项目,兴许就成功了。

 

为了验证我的猜想,此时我新建一个RecyclerView的lib库,并导入相应的jar和资源文件,并用API15去构建该项目,果不其然,项目成功运行。(注意:lib库的包名必须是android.support.v7.recyclerview,以保证生成的类为android.support.v7.recyclerview.R.styleable)

 

总结:recylcerView不能单独已jar的形式导入项目中使用,因为RecyclerView源码中引入了一个自定义属性的类,所以要以model lib库的形式依赖主项目才能成功运行.

 

需要demo的同学私密我,坑爹的,上传三次都失败了~!

 

 

 

 

 

 

 

 

 

  • 大小: 26.3 KB
  • 大小: 38.3 KB
  • 大小: 22.7 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics