What is correct way of using Android View Binding in DialogFragment()?
Official documentation mentions only Activity and Fragment: https://developer.android.com/topic/libraries/view-binding
What is correct way of using Android View Binding in DialogFragment()?
Official documentation mentions only Activity and Fragment: https://developer.android.com/topic/libraries/view-binding
Use inflate(LayoutInflater.from(context))
instead. And use binding.root
to set the builder view.
Also, as Google suggests, it's best practice to set the binding
instance to null at onDestroyView()
when using fragments:
https://developer.android.com/topic/libraries/view-binding#fragments
Example:
class ExampleDialog : DialogFragment() {
private var _binding: DialogExampleBinding? = null
// This property is only valid between onCreateDialog and
// onDestroyView.
private val binding get() = _binding!!
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
_binding = DialogExampleBinding.inflate(LayoutInflater.from(context))
return AlertDialog.Builder(requireActivity())
.setView(binding.root)
.create()
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
}
onDestroyView
necessary for _binding? –
Rain _binding
receives a new value. To detect where a view is destroyed, check _binding == null
(for instance, after long loading operations). –
Wireman © 2022 - 2024 — McMap. All rights reserved.
private val binding get() = _binding!!
makes no sense at all. Am I missing something? – Aliment