【发布时间】:2021-03-22 18:18:26
【问题描述】:
以下两种方法有什么区别或没有区别:
1.
private lateinit var binding: ResultProfileBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ResultProfileBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)
}
private var _binding: ResultProfileBinding? = null
// This property is only valid between onCreateView and onDestroyView.
private val binding get() = _binding!!
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
_binding = ResultProfileBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)
}
以上示例代码来自:https://developer.android.com/topic/libraries/view-binding。一种将 lateinit 用于 Activity,另一种将一个 由可选 var 支持的计算属性 用于 Fragment。
似乎都在 Fragment 和 Activity 中工作,但这让我很好奇:Kotlin 语言有什么不同吗?
【问题讨论】: