您的位置:首页 > 移动开发 > Android开发

android 视图自动注入的第三方库-ButterKnife插件用法介绍

2016-07-11 10:49 399 查看
      写一个新的界面时,总是避免不了写大量的findViewById()来将视图里的空间与代码中的绑定起来。用了这个插件后,通过添加注解的方式,代码在编译的时候会自动生成绑定代码,从而省去了我们写findView()的工作量。下面就来看看这个神奇的ButterKnife怎么用。

一、添加jar包引用


在gradle里添加compile'com.jakewharton:butterknife:6.1.0'


dependencies{
compilefileTree(dir:'libs',include:['*.jar'])

compileproject(path:':PullToRefresh')

compile'com.jakewharton:butterknife:6.1.0'

}


二、在onCreate()里声明

在onCreate()方法里的setContentView()之后声明使用ButterKnife注解,ButterKnife.inject(this);

setContentView(R.layout.activity_resource_detial);
ButterKnife.inject(this);


三、在代码添加注解

在代码中定义控件时,添加@InjectView()注解,注解括号中是该控件在界面中定义的ID

publicclassResourceDetialActivityextendsBasicActivityimplementsView.OnClickListener{

@InjectView(R.id.img_left)
ImageViewtitleBack;
@InjectView(R.id.lable_title)
TextViewtitleText;
@InjectView(R.id.resource_detial_name)
TextViewresourceName;


四、在代码中直接调用控件

完成上述操作后,添加注解的控件会在编译时自动完成与视图中对应控件的绑定。

五、在Fragment中使用ButterKnife

ButterKnife除了支持Activity,还可以在Fragment中使用,只需要在fragment的OnCreateView中的inflate后声明使用butterknife,声明时要多加一个view参数。

Viewview=inflater.inflate(R.layout.fancy_fragment,container,false);
ButterKnife.inject(this,view);

在Fragment中使用Butterknife还有一点很重要,要在OnDestroyView()执行butterknife的reset操作

@OverridevoidonDestroyView(){
super.onDestroyView();
ButterKnife.reset(this);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: