【Android 从入门到放弃】 ButterKnife 使用
来源:互联网 发布:三菱中性笔 知乎 编辑:程序博客网 时间:2024/05/22 11:36
概述
ButterKnife,中文称为黄油刀。为Android 视图提供绑定字段和方法。 简单的说,ButterKnife可以帮我们完成控件的初始化和点击监听等繁琐性工作。目前最新版是8.7.0。
最新版的ButterKnife用了Java Annotation Processing技术,也就是说在Java代码编译成Java字节码的时候就已经处理了@Bind、@OnClick这些注解了,不会影响程序的运行效率。
相关资源地址:
- Introduction:
http://jakewharton.github.io/butterknife/ - Java Doc:
http://jakewharton.github.io/butterknife/javadoc/ - github:
https://github.com/JakeWharton/butterknife
前期准备工作
1. 导入 ButterKnife 依赖
在app Module的build.gradle文件中Dependencies增加下面两句
compile 'com.jakewharton:butterknife:8.7.0'annotationProcessor 'com.jakewharton:butterknife-compiler:8.7.0'
2. 集成 ButterKnife Zelezny 插件
打开 File → Settings → Plugins → Browse repositories搜索“插件名”。该插件可以帮助开发者快速使用ButterKnife 的功能。
小试牛刀
只要右键布局id上,选择Generate,点击Generate Butterknife Injections,该插件会从对应的布局中查找有id属性的View,然后会出现在对应的选择页面。点击Confirm即可。
适用场景
1. Activity
使用ButterKnife Zelezny 插件可以自动绑定。界面销毁后如果想解绑,可以手动设置如下。不过,官方文档没有明确说明是否需要手动解绑,欢迎大侠来拍砖。
Unbinder unbinder = ButterKnife.bind(this);unbinder.unbind();
2. Fragment
在Fragment中,使用ButterKnife Zelezny 插件可以自动绑定和解绑。
Unbinder unbinder;@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_first, container, false); unbinder = ButterKnife.bind(this, view); return view;}@Overridepublic void onDestroyView() { super.onDestroyView(); unbinder.unbind();}
3. Adapter
在Adapter中,使用ButterKnife Zelezny 插件可以自动生成ViewHolder
绑定资源
- ButterKnife Zelezny 插件可以实现绑定id和onClick事件,这也是 ButterKnife 最好用的功能。
- 除了ButterKnife Zelezny 插件绑定的功能外,其实 ButterKnife 还可以绑定控件数组/集合,字符串或者图片资源,以及各种类型的事件。但是由于不能通过ButterKnife Zelezny 插件自动生成,所以这些功能完全可以通过android api实现。
代码混淆
-keep class butterknife.** { *; } -dontwarn butterknife.internal.** -keep class **$$ViewBinder { *; } -keepclasseswithmembernames class * { @butterknife.* <fields>; } -keepclasseswithmembernames class * { @butterknife.* <methods>; }
- 【Android 从入门到放弃】 ButterKnife 使用
- android从入门到放弃2--ButterKnife
- Android开发从入门到放弃(4)使用RelativiLayout
- Android开发从入门到放弃(5)使用LinearLayout
- Android开发从入门到放弃(6)使用TableLayout
- Android开发从入门到放弃(7)使用GridLayout
- Android从入门到放弃系列--目录
- Android从入门到放弃3-线程
- Android从入门到放弃4-Service
- Android插件化:从入门到放弃
- Android插件化:从入门到放弃
- Android插件化:从入门到放弃
- Android插件化:从入门到放弃
- Android插件化:从入门到放弃
- Android插件化:从入门到放弃
- Android Room从入门到放弃
- 发布 Android Library 到 JCenter 从入门到放弃
- Android开发从入门到放弃(3)使用SharedPreferences保存数据
- JAVA NIO(一):Buffer.mark()的用法
- next_permutation与使用
- Java之JFileChooser设置窗体打开路径
- php 注册email激活账号技术
- Codeforces 4A
- 【Android 从入门到放弃】 ButterKnife 使用
- C++实现顺序表
- 正则表达式
- 产品分析和深度学习资料(持续补充)
- JAVA NIO(二):小端字节顺序
- Java.util.Arrays.deepToString(Object[])
- CentOS配置服务器常用指令
- oracle---合并geometry
- Mongodb从0到1系列五: 主从复制