RecyclerView.ViewHolder do setIsRecyclable() func

0

Pergunta

Eu quero definir minha opinião titular para não reciclar, aqui está o código:

@Override
public void onBindViewHolder(final ViewHolder viewHolder, final int position) {
    viewHolder.setIsRecyclable(false);
}

No entanto, quando eu ver a documentação aqui: https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.ViewHolder#setIsRecyclable(boolean)está escrito que o setIsRecycleable() deve sempre ser emparelhado e que eu não tenho nenhuma idéia sobre isso. Alguém pode fornecer um código de exemplo para este caso? Quando devo ligar para o setIsRecyclable(verdadeiro) de novo? Obrigado.

enter image description here

3
0

Não reciclagem do ViewHolder significa apenas que específica ViewHolder será mantido e não são substituídos quando há novos dados para ligar, o problema é que com o Adapter será então necessário o fornecimento de um ViewHolder para compensar o que não pode reutilizar.

É por isso que você precisa, eventualmente, deixá-lo de reciclagem i.e. setIsRecycleable(true) porque é meio que derrota o ponto de RecyclerView se ele acaba tendo que criar novos pontos de vista para representar dados.

Uma razão para você querer desligar a reciclagem é para evitar interrupções, talvez o ViewHolder está a reproduzir uma animação, ou o carregamento de um vídeo. Uma vez feito, você pode, em seguida, ligue a reciclagem, para liberar o ViewHolder para certificar-se de que ele pode ser usado novamente.

2021-11-24 06:12:08
0

É melhor usar Listview neste caso. Todo o significado da recyclerview é reciclar o visualizar. Outra coisa, veja esta postagem https://stackoverflow.com/a/36275862/3094367

2021-11-24 06:03:40
0

Na verdade, a reciclagem está relacionado com viewType.
Você só precisa mudar a cada itemType é sem igual,
como:

@Override
public int getItemType(int position){
    return position
}
2021-11-24 06:28:44

Em outros idiomas

Esta página está em outros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................