android - 如何在 DialogFragment 中正确使用 Android 视图绑定?
问题描述
在 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
}
}
推荐阅读
- javascript - tensorflowjs - javascript 中是否有等效的标记器方法?
- python - 有没有更好的方法在 python 项目中设置 sys.path.append ?
- r - Markdown PDF Knitr - 减号(U+2212)错误
- typescript - 为什么 Typescript 中常量的类型是 2.8?
- html - 如何使用 CSS 为 SVG 设置动画?
- python - Python findall \n 与正则表达式
- azure - 将 Azure Databricks 日志传输到 azure 日志监视器的平均延迟是多少?
- graphql-ruby - How to return a Union type from a GraphQL Mutation
- c# - C# AlphaVantage.NET: How-to use Proxy
- spring - Cannot get value from properties using @Value in Spring