Butter Knife 配置和使用及插件

来源:互联网 发布:网络爬虫好学么 编辑:程序博客网 时间:2024/05/21 06:17

目前最新的版本是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





1 0
原创粉丝点击