ButterKnife

2017-02-23  本文已影响62人  Mr_不靠谱_先森

ButterKnife是一个注解框架,一般在绑定View的时候使用。不得不说,这个框架"有毒",用了就上瘾,连写个Demo都要去导这个库。大多数同学都用过ButterKnife,可能好多人都停留在findViewById()上。我想说,确实不只是有findViewById()这个功能。不得不承认,在这之前,我对ButterKnife的使用,也只停留在绑定视图和点击事件上。

AndroidAnnotation(AA)与ButterKnife的比较

使用方法:

Paste_Image.png Paste_Image.png Paste_Image.png Paste_Image.png Paste_Image.png Paste_Image.png

常用的几个注解

Butterknife支持Activity,Fragment,View,Dialog,ViewHolder类内部的View绑定


@Bind
TextView mTextView//最常用的注解,用来绑定View,避免findViewById,也可以用在ViewHolder里,必须是public

@Bind({ R.id.first_name, R.id.middle_name, R.id.last_name })
List<EditText> nameViews//绑定多个view,只能用List不能用ArrayList

@OnClick(R.id.submit)
public void submit(View view) {...}//绑定点击事件,支持多个id绑定同一个方法

@OnItemSelected(R.id.list_view)
void onItemSelected(int position) {...}//selected事件

@OnItemClick(R.id.example_list) 
void onItemClick(int position) {...}//itemClick事件

@OnFocusChange(R.id.example) 
void onFocusChanged(boolean focused){...}//焦点改变监听

@OnItemLongClick(R.id.example_list) 
boolean onItemLongClick(int position){...}//长按监听

@OnPageChange(R.id.example_pager) 
void onPageSelected(int position){...}//Viewpager切换监听

@OnTextChanged(R.id.example) 
void onTextChanged(CharSequence text)//内容改变监听

@BindInt//用来绑定Integer类型的resource ID
@BindString//用来绑定string.xml里的字符串
@BindDrawable//用来绑定图片
@BindColor//用来绑定颜色
@BindDimen//用来绑定dimens

几点有关ButterKnife的提示,使用时避免踩坑。

上一篇下一篇

猜你喜欢

热点阅读