第三方开源库之|第三方开源库之 Butter Knife 配置和使用
【第三方开源库之|第三方开源库之 Butter Knife 配置和使用】目前最新版本是 10.2.0。
官网:http://jakewharton.github.io/butterknife/
GitHub:https://github.com/JakeWharton/butterknife
配置
- 在 app/build.gradle 中添加如下:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}-----------------------------------------
//Butter Knife
implementation 'com.jakewharton:butterknife:10.2.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.0'
- 在 project/build.gradle 中添加 classpath 如下:
classpath 'com.jakewharton:butterknife-gradle-plugin:10.2.0'
使用
- 在 Activity 中绑定
class ExampleActivity extends Activity {
@BindView(R.id.title) TextView title
@BindView(R.id.subtitle) TextView subtitle;
@BindView(R.id.footer) TextView footer;
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.simple_activity);
ButterKnife.bind(this);
// TODO Use fields...
}
}
- click 事件
@OnClick(R.id.submit)
public void submit() {
// TODO submit data to server...
}
- 绑定ViewHolder
static class ViewHolder {
@BindView(R.id.title) TextView name;
@BindView(R.id.job_title) TextView jobTitle;
public ViewHolder(View view) {
ButterKnife.bind(this, view);
}
}
- 绑定资源
class ExampleActivity extends Activity {
@BindString(R.string.title) String title;
@BindDrawable(R.drawable.graphic) Drawable graphic;
@BindColor(R.color.red) int red;
// int or ColorStateList field
@BindDimen(R.dimen.spacer) Float spacer;
// int (for pixel size) or float (for exact value) field
// ...
}
- 代码混淆
-keep class butterknife.** { *;
}
-dontwarn butterknife.internal.**
-keep class **$$ViewBinder { *;
}-keepclasseswithmembernames class * {
@butterknife.* ;
}-keepclasseswithmembernames class * {
@butterknife.* ;
}
推荐阅读
- android第三方框架(五)ButterKnife
- thinkphp|thinkphp 3.2 如何调用第三方类库
- 探索免费开源服务器tomcat的魅力
- Android7.0|Android7.0 第三方应用无法访问私有库
- 要玩转这个星际争霸II开源AI,你只需要i5+GTX1050
- redis|redis 常见问题一
- iOS常用第三方库
- java|微软认真聆听了开源 .NET 开发社区的炮轰( 通过CLI 支持 Hot Reload 功能)
- SwiftUI|SwiftUI 动画组件之Lottie小型高质量交互式的开源动画文件格式
- 【微信开放平台】微信第三方扫码登录(亲测可用)