1

Ich benutze Adapter in RecyclerView. Jedes Element enthält eine Fortschrittsleiste. Da die Fortschrittsgeschwindigkeit manchmal sehr hoch ist, ruft ein Fragment permanent notifyDataSetChanged() auf, wodurch der Update-Adapter initiiert wird. Aber es gibt ein unangenehmes Merkmal: Zu diesem Zeitpunkt reagiert ViewHolder nicht auf einen Klick und der Benutzer kann den Gegenstand nicht öffnen, während die Fortschrittsgeschwindigkeit nicht abnimmt. Ist es möglich, dieses Problem zu lösen?Wie man klicken Element während NotifyDataSetChanged() in Adapter

Antwort

0

notifyDataSetChanged zeichnet die Liste tatsächlich für Sie neu. Klicken Sie also auf das Listenelement in diesem Moment, das sich möglicherweise auf den Inhalt bezieht, der verfügbar war, bevor Sie den Adapterinhalt aktualisiert haben. Daher ist es eine gute Sache, dass der Klick nicht aktiviert ist. Allerdings geschieht die Aktualisierung in der Regel so schnell, dass der Benutzer keine sichtbare Verzögerung sieht. Bitte gehen Sie daher über die Methode getView() im Adapter, wenn in der Adapterimplementierung ein intensiver oder zeitaufwendiger Prozess stattfindet. Hoffe das hilft! :)

+1

Ja, aber der 'RecyclerView' Adapter hat keine Methode' getView() ', er ersetzt' onBindViewHolder() ', die ich benutze. – proninyaroslav