Фрагмент падает с «lateinit property adapter has not been initialized»
class OrdersFragment : Fragment(R.layout.fragment_orders) {
private lateinit var adapter: OrdersAdapter
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
val cached = viewModel.cachedOrders()
if (cached.isNotEmpty()) adapter.submitList(cached)
setupList(view) // здесь adapter = OrdersAdapter()
}
}
У новых пользователей экран открывается нормально. У тех, у кого в кэше уже есть заказы, он падает с UninitializedPropertyAccessException. Что происходит?
- Адаптер читается раньше, чем присвоен
- lateinit нельзя использовать во фрагменте
- lateinit-свойство обнуляется при повороте
- submitList нельзя вызывать до onStart
