Glide4.8 Glide - You must not call setTag() on a view Glide is targeting
원인 Glide가 tag 사용하고 있기 때문에
for(int i=0; i < max; i++)
{
imageView.setTag( items.get(i) ); // ←ここで例外が上がってしまう。
Glide.with(this)
// (略)
.into(imageView);
}
대책 실패편
for(int i=0; i < max; i++)
{
imageView.setTag( items.get(i) ); // ←ここで例外が上がってしまう。
Glide.with(this)
// (略)
.into(imageView);
}
를 참고해 보자
public class App extends Application {
@Override public void onCreate() {
super.onCreate();
ViewTarget.setTagId(R.id.glide_tag);
}
}
src/main/values/ids.xml
<resources>
<item type="id" name="glide_tag" />
</resources>
아~ 이 정보는 낡았다.
Glide v4 Targets
를 보았다. 모르는 XD
대책 성공의 길
myButton.setTag(100 /* or any other integer key except 0 */, someValue);
과연~
이것이군요.
public class View implements Drawable.Callback, KeyEvent.Callback, AccessibilityEventSource {
public void setTag(int key, final Object tag)
public Object getTag(int key)
해보자.
imageView.setOnClickListener(imageViewLister);
for(int i=0; i < max; i++)
{
imageView.setTag(i, items.get(i) );
}
이것이 key의 i가 상수가 아니기 때문에 화가났다;
이런 식으로 상수를 자르고 싶지 않아 ... ( '· ω ·`)
대책 성공편
(✧Д✧) 자신의 ID라는 상수가 있어!!
1건 낙착
imageView.setOnClickListener(imageViewLister);
for(int i=0; i < max; i++)
{
imageView.setTag(imageView.getId(), items.get(i) );
}
private View.OnClickListener imageViewLister = new View.OnClickListener() {
@Override
public void onClick(View view)
{
Item item = view.getTag(view.getId());
}
};
Reference
이 문제에 관하여(Glide4.8 Glide - You must not call setTag() on a view Glide is targeting), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Ikumi/items/d582905501e928db1fb8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)