Fiz um teste ao final do projeto, colocando novamente aquele contador de quantas vezes o método onCreateViewHolder() é executado. O que notei foi o seguinte:
- Quando carrego uma lista de Notas de exemplo (por exemplo, 1000 notas), ele cria 10 ViewHolders e reutiliza - tudo OK conforme esperado!
- Quando vou criando um-por-um, ele sempre adiciona um novo ViewHolder, inclusive quando faço scroll tudo para cima, ou tudo para baixo (também cria novos itens)
A solução melhor que achei, foi utilizar o método notifyItemInserted(posicao) quando chamado o método adiciona(nota) do Adapter. Dessa forma, ele criou 12 ViewHolders e parou de criar novos (reutilizando corretamente, conforme esperado).
Esse comportamento de sempre criar um novo ViewHolder quando utilizado o método notifyDataSetChanged() está correta? Sempre irá criar novos itens?
Obrigado!!