首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android神器

前言

新年快乐,这是我的狗年第一更。

ButterKnife实际上可以出了很久了,我也用了很久很久了,但是我没有仔细的看过它的原理,所以回顾一下这个神器。我主要通过阅读他人的文章来回顾这个东东,下文并不是deep层次的东西,我用来学习巩固,并且记录下来,以后可以用的着。

简介

在开发过程中,我们总是需要使用findViewById或者是一些点击事件等等。简单的说ButterKnife是一个专注于Android系统的View注入框架,可以减少大量的findViewById以及setOnClickListener代码,可视化一键生成(偷懒必备)。由大神JakeWharton开源。Githubhttps://github.com/JakeWharton/butterknife

优点

1.强大的View绑定和Click事件处理功能,简化代码,提升开发效率

2.方便的处理Adapter里的ViewHolder绑定问题

3.运行时不会影响APP效率,使用配置方便

4.代码清晰,可读性强

集成

在根build.gradle中,如下:

dependencies {

classpath'com.jakewharton:butterknife-gradle-plugin:8.8.1'

}

在主module中加入,如下:

compile'com.jakewharton:butterknife:8.8.1'

annotationProcessor'com.jakewharton:butterknife-compiler:8.8.1'

重新同步一下就好了。

注意事项

1、Activity ButterKnife.bind(this);必须在setContentView();之后,且父类bind绑定后,子类不需要再bind

2、Fragment ButterKnife.bind(this, mRootView);

3、属性布局不能用private or static修饰,否则会报错

4、setContentView()不能通过注解实现。

5、在Fragment生命周期中,onDestoryView也需要Butterknife.unbind(this)

6、ButterKnife不能再你的library module中使用,这是因为你的library中的R字段的id值不是final类型的,但是你自己的应用module中确是final类型的。

插件

有时候使用@BindView还是嫌累怎么办,出来了一个快捷的方式,使用Zelezny插件,帮助开发者一键完成所有xml对象的实例引用。

图1-1插件使用

鼠标移到需要引用的布局文件上,上图是R.layout.activity_setting.,右键选择generate,选择一个带有butterKnife字符的按键,选择需要实例引用的对象。

安装插件

Setting->Plugins –>搜索Zelezny,点击右侧安装就可以了。

使用总结

参考https://www.jianshu.com/p/2967d0342d80,写的很详细的。

深度讲解

参考https://www.jianshu.com/p/b8b59fb80554,写的很棒。

总结

我们刚开始不能写出很好的轮子,但是我们要去看好的轮子,吸收经验,增长实力,同时分享好的轮子,可以让我们走的更远。

作者:william_zhang

欢迎关注。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180223G17JS000?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券