Butter Knife 配置和使用及插件

简介: 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


image.png

目录
相关文章
|
关系型数据库 MySQL 网络安全
KaliLinux常见问题与解决方案
KaliLinux常见问题与解决方案
1432 2
|
Android开发
Android studio 出现Plugin [id: ‘com.android.application‘, version: ‘8.1.0‘, apply: false] 问题解决办法
Android studio 出现Plugin [id: ‘com.android.application‘, version: ‘8.1.0‘, apply: false] 问题解决办法
6130 2
|
数据可视化
如何使用四分位距方法来识别数据中的异常值?
如何使用四分位距方法来识别数据中的异常值?
|
机器学习/深度学习 数据采集 算法框架/工具
使用Python实现智能生态系统监测与保护的深度学习模型
使用Python实现智能生态系统监测与保护的深度学习模型
454 4
|
Android开发 开发者
Android经典面试题之SurfaceView和TextureView有什么区别?
分享了`SurfaceView`和`TextureView`在Android中的角色。`SurfaceView`适于视频/游戏,独立窗口低延迟,但变换受限;`TextureView`支持复杂变换,视图层级中渲染,适合动画/视频特效,但性能略低。两者在性能、变换、使用和层级上有差异,开发者需按需选择。
618 1
|
Android开发
Android实现圆形图像的两种方法(Glide和Picasso)
Android实现圆形图像的两种方法(Glide和Picasso)
661 1
|
Java Android开发
Android 获取项目证书指纹MD5、SHA1、SHA256步骤详解
Android 获取项目证书指纹MD5、SHA1、SHA256步骤详解
2571 0
Android 获取项目证书指纹MD5、SHA1、SHA256步骤详解
|
搜索推荐 前端开发 Java
财务管理系统|基于Springboot开发实现公司财务管理系统
财务管理系统|基于Springboot开发实现公司财务管理系统
313 0
|
Java Windows
JDK17 || JDK 8 完美 卸载 教程 (Windows版) 完整指南:卸载JDK17和JDK8,并安装新版JDK
JDK17 || JDK 8 完美 卸载 教程 (Windows版) 完整指南:卸载JDK17和JDK8,并安装新版JDK
4748 0