Redefinição de propriedades e valores preguiçosos de Kotlin: um delegado preguiçoso redefinível
Então eu usokotlin
para android, e ao aumentar visualizações, costumo fazer o seguinte:
private val recyclerView by lazy { find<RecyclerView>(R.id.recyclerView) }
Este método irá funcionar. No entanto, há um caso em que o aplicativo será bugado. Se este é um fragmento e o fragmento vai para o backstack,onCreateView
será chamado novamente e a hierarquia de exibição do fragmento será recriada. O que significa que o recyclerView iniciado preguiçosamente indicará uma visualização antiga que não existe mais.
Uma solução é assim:
private lateinit var recyclerView: RecyclerView
E inicialize todas as propriedades dentroonCreateView
.
Minha pergunta é: existe alguma maneira de redefinir propriedades preguiçosas para que possam ser inicializadas novamente? Eu gosto do fato de as inicializações serem feitas no topo de uma classe, ajuda a manter o código organizado. O problema específico é encontrado nesta pergunta:kotlin android fragmento vazio reciclador vista depois de voltar