在DialogFragment中正确使用Android View Binding的方式是什么?
官方文档仅提到了Activity和Fragment: https://developer.android.com/topic/libraries/view-binding
在DialogFragment中正确使用Android View Binding的方式是什么?
官方文档仅提到了Activity和Fragment: https://developer.android.com/topic/libraries/view-binding
请改用 inflate(LayoutInflater.from(context))
。然后使用binding.root
来设置构建器视图。
此外,如Google所建议的,最好在使用片段时在onDestroyView()
中将binding
实例设置为null:
例如:
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
}
}
private val binding get() = _binding!!
完全没有意义。我是否遗漏了什么? - Mehmed_binding
会获得一个新的值。要检测视图何时被销毁,请检查_binding == null
(例如,在长时间加载操作之后)。 - CoolMind