CommonViewHolder中设置使用Glide设置ImageView报错java.lang.IllegalArgumentException: You must not call setTag() on a view Glide is targeting

代码是在鸿洋老师的CommonAdapter的基础上写的,今天想把Glide引入项目中出现了自己处理不了的错误:

代码结构和调用是:

public class GlideImageTestAct extends AppCompatActivity {

        .......

       gv.setAdapter(new CommonAdapter<String>(this,datas,R.layout.simple_imageview_layout) {
           @Override
           public void convert(CommonViewHolder holder, String s) {
               holder.setImageURI(R.id.iv,s);
           }
        });

        .......

}

public class CommonViewHolder {

        .......

        public CommonViewHolder setImageURI(int resId, String url) {
           if (TextUtils.isEmpty(url)) return this;
            ImageView imageView = getView(resId);
 Glide.with(mContext).load(url).centerCrop().placeholder(R.mipmap.default_image).error(R.mipmap.error_image).crossFade().into(imageView);

         return this;
          }

        .......

}

运行报错:

    E/AndroidRuntime: java.lang.IllegalArgumentException: You must not call setTag() on a view Glide is targeting

1035180846
浏览 4587回答 1
1回答

mikysunny

使用Glide给view赋值的时候,必须给view设置tag,调用view.setTag();方法
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android
Java