3
respostas

[Dúvida] Recyclerview desenhado duas vezes?

Criei um novo projeto e executei, aparece esse erro: E/RecyclerView: No adapter attached; skipping layout E/RecyclerView: No adapter attached; skipping layout

Se rotacionar a tela o mesmo acontece. Era para o mesmo erro aparecer duas vezes? Ou o recyclerview ou mesmo a activity estão sendo desenhados duas vezes?

3 respostas

Olá Júnior, tudo bem?

Verifique se você definiu o adapter corretamente para o RecyclerView na sua Activity. Você também deve definir o adapter antes de chamar o método setLayoutManager no RecyclerView. Por exemplo:

class MyActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_my)
        val recyclerView = findViewById<RecyclerView>(R.id.recycler_view)
        recyclerView.adapter = MyAdapter()
        recyclerView.layoutManager = LinearLayoutManager(this)
    }
}

Certifique-se de que seu adaptador está configurado corretamente e implementando todos os métodos necessários. Se o erro persistir após definir o adaptador corretamente, verifique se você está configurando o RecyclerView novamente após a rotação da tela. Você pode usar o método onSaveInstanceState e onRestoreInstanceState para salvar e restaurar o estado do RecyclerView após a rotação da tela.

Qualquer dúvida estarei à disposição :)

O adapter não esta configurado, por isso o erro. A duvida é, por que aparece o mesmo erro duas vezes seguidas?

Opa júnior, beleza?

O fato de aparecer duas vezes seguidas pode indicar que o RecyclerView está sendo inicializado duas vezes ou sendo reiniciado devido a alguma ação na tela, como a rotação da tela.

Quando o RecyclerView é inicializado novamente, ele tenta desenhar a tela novamente e acaba gerando o mesmo erro novamente, já que o adapter ainda não foi configurado. Para resolver esse problema, é necessário definir o adapter corretamente na sua Activity ou Fragment e garantir que ele seja definido apenas uma vez. Você também pode usar o método onSaveInstanceState e onRestoreInstanceState para salvar e restaurar o estado do RecyclerView após a rotação da tela, evitando que ele seja reinicializado desnecessariamente.

Se quiser disponibilizar seu código no github pra gente analisar, fique à vontade.

Qualquer coisa estarei à disposição :)