0
点赞
收藏
分享

微信扫一扫

Butter Knife 配置和使用及插件

目前最新的版本是8.4.0的

官网:​​http://jakewharton.github.io/butterknife/​​

GitHub:​​https://github.com/JakeWharton/butterknife​​

配置:

1.在app下的build.gradle中添加apply和compile

apply plugin: 'com.android.application'
<strong>apply plugin: 'com.neenbedankt.android-apt'
apply plugin: 'com.jakewharton.butterknife'</strong>

android {
compileSdkVersion 24
buildToolsVersion "24.0.3"

aaptOptions {
cruncherEnabled = false
useNewCruncher = false
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:24.2.1'
testCompile 'junit:junit:4.12'

<strong>compile 'com.jakewharton:butterknife:8.4.0'
apt 'com.jakewharton:butterknife-compiler:8.4.0'</strong>

}

2.在project下的build.gradle中添加classpath

buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.0'
classpath 'com.jakewharton:butterknife-gradle-plugin:8.4.0'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}

allprojects {
repositories {
jcenter()
}
}

task clean(type: Delete) {
delete rootProject.buildDir
}

3.在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...
}
}

4.绑定Button,参数可选

<span style="font-size:12px;">@OnClick(R.id.submit)
public void submit(View view) {
// TODO submit data to server...
}</span>
@OnClick(R.id.submit)
public void submit() {
// TODO submit data to server...

5.绑定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);
}
}

6.绑定资源

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
// ...
}

7.代码混淆

-keep class butterknife.** { *; }  
-dontwarn butterknife.internal.**
-keep class **$$ViewBinder { *; }

-keepclasseswithmembernames class * {
@butterknife.* <fields>;
}

-keepclasseswithmembernames class * {
@butterknife.* <methods>;
}

8.插件Zelezny

可视化快速生产view

安装Preferences → Plugins → Browse repositories and search for ButterKnife Zelezny

或Preferences → Plugins → Install plugin from disk

GitHub地址:​​https://github.com/avast/android-butterknife-zelezny​​

使用(图是官网的):

鼠标放在布局上右键——>Generate——Generate ButterKnife Injections

Butter Knife 配置和使用及插件_ButterKnife配置使用


举报

相关推荐

0 条评论