private lateinit var binding: FragmentBinding override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View { binding = FragmentBinding.inflate(inflater, container, false) return binding.root }
Это будет работать в базовом фрагменте? FragmentBinding же, а надо конкретный фрагмент туда вписывать
ну так и вставь туда конкретный сгенеренный студией биндинг
Глянь вот это https://github.com/yogacp/android-viewbinding/tree/master/android-viewbinding/src/main/java/android/viewbinding/library https://github.com/hoc081098/ViewBindingDelegate https://github.com/kirich1409/ViewBindingPropertyDelegate/blob/master/vbpd/vbpd-full/src/main/java/by/kirich1409/viewbindingdelegate/internal/ViewBindingCache.kt
Спасибо, сейчас посмотрю
Буквально недавно кидал про lateinit. Во фрагменте с байндингом тем более его не надо юзать. Либо nullable, либо сторонний делегат с lifecycle-обсервером.
Либо делегат, который вам скинули, либо через nullable-переменные.
почему? Вот официальный пример от гуглов https://developer.android.com/topic/libraries/view-binding#activities
соррян, это для активити. Для фрагментов реально нуллабл используется у них
А для активити лучше lazy-инициализацию сделать, либо тот же делегат (если он для активити работает)
получается, гугл не придерживаются хороших практик или?
В этом плане - да. Гугл - не истина в последней инстанции.
Обсуждают сегодня