在 customView 中使用 viewBinding 时避免内存问题

Avoid memory issue while using viewBinding in customView

基于official documentation我们在fragments中使用ViewBinding时,我们应该在fragment的onDestroyView中设置binding为null:

private var _binding:MainFragmentBinding?=null
private val binding get()=_binding!!

override fun onDestroyView() {
    super.onDestroyView()
    _binding = null
}

自定义视图呢?我们是否需要在 onDetachFromWindow 或任何其他函数中将绑定设置为 null?

没有。放在 val.

中就好了

片段的问题在于片段及其视图具有不同的生命周期,因此保持 onDestroyView()onDestroy() 之间的片段绑定会占用不必要的内存。

在自定义视图中,它与存储在 class 属性 中的任何绑定具有相同的生命周期。