在 DialogFragment() 中使用 Android 视图绑定的正确方法是什么?
官方文档只提到了Activity和Fragment: https ://developer.android.com/topic/libraries/view-binding
在 DialogFragment() 中使用 Android 视图绑定的正确方法是什么?
官方文档只提到了Activity和Fragment: https ://developer.android.com/topic/libraries/view-binding
改为使用inflate(LayoutInflater.from(context))
。并用于binding.root
设置构建器视图。
此外,正如 Google 所建议的,在使用片段时
将binding
实例设置为 null是最佳做法: https ://developer.android.com/topic/libraries/view-binding#fragmentsonDestroyView()
例子:
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
}
}