Fehler "Sie dürfen setTag () nicht in einer Ansicht aufrufen, auf die Glide zielt, wenn Sie Glide verwenden
Benutze ich Gleiten Bibliothek innere benutzerdefinierte adapter anzeigen in meine apps. Aber ich habe Fehler :
"You must not call setTag() on a view Glide is targeting"
Diesem Teil von meinem code :
@Override
public View getView(int position, View view, ViewGroup container) {
ViewHolder holder;
if (view == null) {
holder = new ViewHolder();
view = holder.imageView = new ImageView(context);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
holder.imageView.setAdjustViewBounds(true);
LinearLayout.LayoutParams vp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
holder.imageView .setLayoutParams(vp);
holder.imageView .setScaleType(ImageView.ScaleType.CENTER_CROP);
String var_news_article_images = imageIdList.get(getPosition(position));
Glide.with(context)
.load(var_news_article_images)
.placeholder(R.drawable.placeholder)
.into(holder.imageView);
return view;
}
so, wie man es beheben ?
InformationsquelleAutor der Frage Amay Diam | 2016-01-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Schlüssel
ViewTarget.setTagId
; Einstellung wird es frei nach der Standard -setTag
auf dieImageView
so können Sie es als root in das Element layout.Es wurde eingeführt, Glide 3.6.0 in Ausgabe #370.
In Ihrem manifest hinzufügen:
Dann eine Anwendung erstellen, die Kontext-Klasse:
Fügen Sie Folgendes als Inhalt für
src/main/values/ids.xml
:(oder fügen Sie einfach die oben
<item ... />
in jedemresources
xml invalues
)InformationsquelleAutor der Antwort TWiStErRob
Von dem, was ich gefunden habe vom Googeln, scheint Gleiten und ViewHolder nicht auskommen zu gut. Ich versuchte Picasso statt. Problem gelöst sofort.
Können Sie auch versuchen, die Lösung von TWiStErRob, aber stellen Sie sicher, dass Sie mit Glide 3.6.0 oder höher. Es dauerte nicht erkennen setTagId(int) auf 3.5.2
InformationsquelleAutor der Antwort Shaahin Sh
Glide
verwendensetTag(Object)
Methode intern. So entfernen Sie alle Anrufe vonsetTag(Object)
von Ihrem Ziel anzeigen. ieImageView
Wenn Sie wirklich erforderlich ist
setTag
Methode auf Ihre anzeigen, die Sie verwenden könnensetTag(int,Object)
Methode statt.InformationsquelleAutor der Antwort P Vartak
Siehe auch : https://androidhiker.blogspot.com/2015/10/how-to-resolve-glide-settag-issue.html
InformationsquelleAutor der Antwort Thu Thu
Ich hatte das gleiche Problem, nach entfernen der folgenden
vom Bild auf meinem xml-layout, das Problem war Weg
InformationsquelleAutor der Antwort Shai Epstein