Android - Vista composta personalizada gerada dinamicamente, recriada no RecyclerView, causando baixo desempenho

Estou usando um costumeCompoundView que se estendeLinearLayout para exibir itens de umRecyclerView. Cada item exibe um artigo que contém vários parágrafos e imagens.

oCompoundView acrescentaTextView ouImageView dinamicamente com base nos dados anexados porCompoundView.setData(List<DataPiece> pieces), cujo número é desconhecido antes dos dados serem anexados.

CadaDataPiece objeto dizCompoundView seja um pedaço de texto ou uma imagem. E aqui está o código paraCompoundView.setData(List<DataPiece> pieces):

public void setData(List<DataPiece> pieces) {
    removeAllViews();
    for (DataPiece dataPiece : pieces) {
        switch (dataPiece.getType()) {
            case IMAGE:
                ImageView imageView = new ImageView(getContext());
                ...
                addView(imageView);
                break;
            case TEXT:
                TextView textView = new TextView(getContext());
                ...
                addView(textView);
                break;
        }
    }
}

NoRecyclerView.Adapter.onBindViewHolder(), os dados são anexados aCompoundView chamandoMyViewHolder.compoundView.setData(...). E funciona bem quando oRecyclerView é criado.

No entanto, para umCompoundView item com múltiplosImageViewareiaTextViews, quando eu me afasto dele e, em seguida, retrocesso, o pergaminho torna-se bastante suave.

Eu acho que é porqueremoveAllViews() nosetData() é chamado e oCompoundView o loop for de criação é executado novamente pelo reciclador. Mas não sei como evitar isso.

E também me pergunto por que o pergaminho é sempre suave ao usarTextView(com imagens) em umRecyclerView até é reciclado também.

Desde já, obrigado!

questionAnswers(2)

yourAnswerToTheQuestion