【发布时间】:2020-04-14 10:05:31
【问题描述】:
在 DialogFragment() 中使用 Android 视图绑定的正确方法是什么?
官方文档只提到了Activity和Fragment: https://developer.android.com/topic/libraries/view-binding
【问题讨论】:
标签: android dialogfragment android-viewbinding
在 DialogFragment() 中使用 Android 视图绑定的正确方法是什么?
官方文档只提到了Activity和Fragment: https://developer.android.com/topic/libraries/view-binding
【问题讨论】:
标签: android dialogfragment android-viewbinding
请改用inflate(LayoutInflater.from(context))。并使用binding.root 设置构建器视图。
此外,正如 Google 所建议的,在使用片段时,最好将 binding 实例在 onDestroyView() 处设置为 null:
https://developer.android.com/topic/libraries/view-binding#fragments
例子:
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!! 完全没有意义。我错过了什么吗?