Uso la vista del riciclatore per mostrare l'elenco di elementi che contengono il layout di griglia delle immagini. Il layout della griglia viene aggiunto dinamicamente alla voce dell'elenco all'interno del metodo "onBindViewHolder" sull'adattatore di visualizzazione recycler. Ora il problema è che le viste del layout della griglia sono ricreate su ogni scroll. Non voglio che quelle viste vengano ricreate su scroll. Come affrontarlo ??Problemi con viste dinamiche all'interno del punto di vista del riciclatore
Ecco il frammento di codice
@Override
public void onBindViewHolder(final PersonViewHolder personViewHolder, final int i) {
GridLayout feedGrid = new GridLayout(context);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(dipToPixels(context,HomePage.SCREEN_WIDTH),dipToPixels(context,HomePage.SCREEN_WIDTH));
feedGrid.setLayoutParams(layoutParams);
feedGrid.setColumnCount(1);
imgArr = new ImageView[num];
imgArr[0] = new ImageView(context);
GridLayout.Spec row = GridLayout.spec(0, 1);
GridLayout.Spec colspan = GridLayout.spec(0, 1);
GridLayout.LayoutParams gridLayoutParam = new GridLayout.LayoutParams(row, colspan);
gridLayoutParam.setGravity(Gravity.FILL);
Picasso.with(context).load(urlArr.get(0)).error(mDrawable).placeholder(mDrawable).into(imgArr[0], new Callback() {
@Override
public void onSuccess() {
personViewHolder.feedGridLayout.setVisibility(View.VISIBLE);
personViewHolder.loadImg.setVisibility(View.GONE);
}
@Override
public void onError() {
personViewHolder.feedGridLayout.setVisibility(View.GONE);
personViewHolder.loadImg.setVisibility(View.VISIBLE);
}
});
feedGrid.addView(imgArr[0], gridLayoutParam);
personViewHolder.feedGridLayout.removeAllViews();
personViewHolder.feedGridLayout.addView(feedGrid);
}
Posso sapere perché è downvoted ??? – Manu