赞
踩
介绍:Android开发 View注入 IOC框架
优点:
使用ButterKnife对性能基本没有损失,因为ButterKnife用到的注解并不是在运行时反射的,而是在编译的时候生成新的class。
简化View绑定、Click事件处理功能、Adapter的ViewHolder绑定。
代码可读性强
Github:https://github.com/JakeWharton/butterknife
Doc:http://jakewharton.github.io/butterknife/
MyDocRepo(私人仓库备份):https://yankeyon.gitee.io/Doc/Butter%20Knife.htm
AndroidStudio版本:v3.5
appSdk版本配置信息:
- compileSdkVersion 28
- defaultConfig {
- applicationId "com.keyon.myhandler"
- minSdkVersion 24
- targetSdkVersion 28
- versionCode 1
- versionName "1.0"
- testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
- }
安装AS ButterKnife插件,提高开发效率。(安装后需重启IDE)
项目引入jar包
- android {
- ...
- // Butterknife requires Java 8.
- compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
- }
- }
- dependencies {
- implementation 'com.jakewharton:butterknife:10.2.0'
- annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.0'
- }
add the plugin to your buildscript
- buildscript {
- repositories {
- mavenCentral()
- google()
- }
- dependencies {
- classpath 'com.jakewharton:butterknife-gradle-plugin:10.2.0'
- }
- }
apply it in your module
apply plugin: 'com.jakewharton.butterknife'
右键布局文件 -> Generate...(Alt+Insert)
OnClick为是否生成点击事件函数,点击Confirm确认生成。
生成代码
- @BindView(R.id.tv_item_content)
- TextView tvItemContent;
- @BindView(R.id.btn_show_menu)
- Button btnShowMenu;
-
- @Override
- protected void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- ButterKnife.bind(this);
- }
-
- @OnClick(R.id.btn_show_menu)
- public void onViewClicked() {
-
- }
除了View绑定注解与事件点击注解外,还有其他注解。
@BindArray 绑定string里面array数组;@BindArray(R.array.city ) String[] citys ;
@BindBitmap 绑定图片资源为Bitmap;@BindBitmap( R.mipmap.wifi ) Bitmap bitmap;
@BindString 绑定一个String id为一个String变量;@BindString( R.string.app_name ) String meg;
@BindColor 绑定color;@BindColor(R.color.colorAccent) int black;
@BindDimen 绑定Dimen;@BindDimen(R.dimen.borth_width) int mBorderWidth;
@BindDrawable 绑定Drawable;@BindDrawable(R.drawable.test_pic) Drawable mTestPic;
@BindFloat 绑定float
@BindInt 绑定int
@BindBool 绑定boolean值
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。