Android studio上安装最新版'com.jakewharton:butterknife-compiler:8.8.0',并且成功给layout注入控件后不起作用,onclick事件无反应。配置如下
app/builder.gradle:
compile 'com.jakewharton:butterknife:8.8.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.0'
另外配置butterknife也很坑,除了在File->Setting->Plugins中搜索butterknife安装,还需要在File->Project Structure->app->Dependencies->右上角+号->Library Dependency搜索添加com.jakewharton:butterknife-compiler才可以,其他方法很多都有问题。
依赖注入的代码:
@BindView(R.id.iv_user_head)
public ImageView ivUserHead;
@BindView(R.id.rl_celebrity)
public RelativeLayout rlCelebrity;
@BindView(R.id.rl_search_face)
RelativeLayout rlSearchFace;
@BindView(R.id.rl_my_selfie)
RelativeLayout rlMySelfie;
@BindView(R.id.rl_address)
RelativeLayout rlAddress;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View myView = inflater.inflate(R.layout.fragment_my, container, false);
unbinder = ButterKnife.bind(this, myView);
return myView;
}
@OnClick({R.id.iv_user_head, R.id.rl_celebrity, R.id.rl_search_face, R.id.rl_my_selfie, R.id.rl_address})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.iv_user_head:
showToast(getActivity(),"我的");
break;
case R.id.rl_celebrity:
ActivityHelper.jumpNoFinish(getActivity(), MyCeleListActivity.class);
break;
case R.id.rl_search_face:
showToast(getActivity(),"图塔");
break;
case R.id.rl_my_selfie:
showToast(getActivity(),"自评");
break;
case R.id.rl_address:
break;
}}
onClick事件无反应。
搜了很多原因。buil.gradle中改Butterknife的配置,到Butterknife的官网按照官网的说明文档去配置,也不行。
后来改了butterknife的版本号,改成比较老的版本,如8.4.0,onclick事件起了作用。看来是最新版本的问题。