View Binding 与Kotlin委托属性的巧妙结合,告别垃圾代码!

本文介绍了如何利用Kotlin的委托属性优化View Binding的使用,以减少Android应用中的样板代码和提高性能。通过示例展示了如何在Fragment中避免创建和销毁ViewBinding的繁琐步骤,并解决在Fragment生命周期中正确清理View的问题。结合Kotlin委托属性,可以实现更简洁、易读的代码结构。
摘要由CSDN通过智能技术生成

前言

最近看到一篇使用Kotlin委托属性来消除使用ViewBinding过程中样板代码的文章,觉得不错,因此翻译给大家,原文地址:

https://proandroiddev.com/make-android-view-binding-great-with-kotlin-b71dd9c87719

正文

ViewBinding 是Android Studio 3.6中添加的一个新功能,更准确的说,它是DataBinding 的一个更轻量变体,为什么要使用View Binding 呢?答案是性能。许多开发者使用Data Binding库来引用Layout XML中的视图,而忽略它的其他强大功能。相比来说,自动生成代码ViewBinding其实比DataBinding 性能更好。但是传统的方式使用View Binding 却不是很好,因为会有很多样板代码(垃圾代码)。

View Binding 的传统使用方式

让我们看看Fragment 中“ViewBinding”的用法。我们有一个布局资源profile.xml。View Binding 为布局文件生成的类叫ProfileBinding,传统使用方式如下:

class ProfileFragment : Fragment(R.layout.profile) {
   
  
      private var viewBinding: ProfileBinding? = null
  
      override fun onViewCreated(view: View, savedState: Bundle?) {
   
        super.onViewCreated(view, savedInstanceState)
        viewBinding = ProfileBinding.bind(view)
        // Use viewBinding
      }
  
      override fun onDestroyView() {
   
         super.onDestroyView()
         viewBinding = null
      }
}

有几点我不太喜欢:

  • 创建和销毁viewBinding的样板代码
  • 如果有很多Fragment,每一个都要拷贝一份相同的代码
  • viewBinding 属性是可空的,并且可变的,这可不太妙

怎么办呢?用强大Kotlin来重构它。

Kotlin 委托属性结合ViewBinding

使用Kotlin委托的属性,我们可以重用部分代码并简化任务(不明白委托属性的,可以看我(译者)以前的文章:一文彻底搞懂Kotlin中的委托),我用它来简化·ViewBinding的用法。用一个委托包装了ViewBinding`的创建和销毁。

class FragmentViewBindingProperty<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值