②FIEld and method binding for AndroID VIEws which uses annotation processing to generate boilerplate code for you
【功能】(1)绑定字段
(2)可以绑定组的组件或者数组
(3)绑定监听器
(4)绑定资源(图片、字符串、数组)(@BindBool,@Bindcolor,@BindDimen,@BindDrawable,@BindInt,@BindString)
③【提升性能】不是使用反射,而是使用代码生成,生成了bind的delegate方法,在oncreate中调用了bind,其实就是执行了findVIEwByID().性能没有下降。 ④也可以在fragment和Adapter中使用,以及自定义控件的绑定 ⑤绑定重置,让程序性能更好,不用同时释放重置。
------------------------更多了解可前往官网查看
二、添加依赖,引用插件 (1)在Project的build.gradle中设置buildScripts,插件依赖
(设置butterknife插件加载的url)
1 buildscript { 2 repositorIEs { 3 Google() 4 maven { 5 name "aliyunmaven" 6 url "http://maven.aliyun.com/nexus/content/groups/public/" 7 } jcenter() 8 } 9 dependencIEs {10 classpath 'com.androID.tools.build:gradle:3.1.0'11 12 }13 14 15 allprojects {16 17 18 19 name "aliyunmaven"20 url "http://maven.aliyun.com/nexus/content/groups/public/"21 }22 jcenter()23 24 }
(2)Module依赖设置的build.gradle中设置:
implementation 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
也可通过以下方式搜索加入
三、项目使用 (1)绑定字段
(2)绑定资源
【项目结构】
【strings.xml】
【activity_main.xml】
【MainActivity.java】
【效果】
(3)fragment中使用butterknife
【项目结构】
【fragment_fancy.xml】
【FancyFragment.java】
【注意】使用的是ButterKnife.Bind(this,vIEw);和Activity中不同
【效果】将fragment贴到activity上,最终效果
(4)在Adapter中使用butterknife(以下只粘贴重要代码)
【项目结构】
【item.xml】
【MyHolder.java】
【MyAdapter.java】
【注意】创建MyHolder是需要传入vIEw参数。此处使用RecycleVIEw,和ListVIEw的BaseAdapter有点差异,但用过的也会很好理解。
【最终效果】
(5)绑定一组VIEw
例如,多个TextVIEw一起绑定到一个List集合中。
使用的注解是@bindVIEws({x,y,z})--->List<vIEw>
【activity_main.xml】
【MainActivity.java】
【效果】
(6)绑定监听器onclick事件
【核心代码】
(7)自定义控件的绑定
【activity_main.xml】
【MainActivity.java】不变。
【效果】
(8)绑定重置(.unbind)
目的,让程序性能更好,不用时释放绑定。
【案例】在Fragment中实现绑定重置
【项目结构】
【fragment_red.xml】
【fragment_blue.xml】
【RedFragment.java】
【BlueFragment.java】
【最终效果】
四、添加插件,快速获取布局中的ID,自动生成VIEwHolder ①打开file---》setting--》plugins--》brows···--》搜索butterknife---》带五星的安装---》安装成功重启as生效
②将鼠标点击在R.layout.某某布局上,右击---》Generate···--》点击会看到---》Generate ButterKnife Injections
【注意】一定要将光标,鼠标放在布局上右击,否则无效
总结
以上是内存溢出为你收集整理的ButterKnife 牛油刀使用全部内容,希望文章能够帮你解决ButterKnife 牛油刀使用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)