Je demande des images au présentateur dans l'adaptateur :
@Override
public void onBindViewHolder(SiteAdapter.ViewHolder holder, int position)
{
Site site = sites.get(position);
holder.siteName.setText(site.getName());
requestHolderLogo(holder, site.getLinks().getLogoUrl());
}
private void requestHolderLogo(final ViewHolder holder, final String logoUrl)
{
compositeSubscription.add(
presenter.bitmap(logoUrl)
.subscribe(
bitmap -> {
holder.siteLogo.setImageBitmap(bitmap);
holder.siteLogo.setVisibility(View.VISIBLE);
},
error -> {
holder.siteName.setVisibility(View.VISIBLE);
})
);
}
Je devrais me désabonner quand ViewHolder
est réutilisé. C'est facile.
Mais comment arrêter tous les abonnements lorsque la vue est détruite ? Je devrais aussi probablement annuler la référence au présentateur pour éviter les fuites de mémoire.
20 votes
Veuillez expliquer pourquoi le downvoting
0 votes
Vérifier ma réponse ici stackoverflow.com/a/68351804/6039240