Skip to content

ExtFunc

storytellerF edited this page Mar 2, 2024 · 3 revisions

如果我们定义了一个Context 的扩展函数,希望在Fragment 中使用

requireContext().xxx();

有点繁琐,如果能够这样

xxx();

就好了。为此,我们需要定义

fun Fragment.xxx() = requireContext().xxx();

我们的项目肯定会定义大量的扩展函数,而且能够获得Context 的不止Fragment,还有View,这种重复性的劳动应该避免

Don't repeat yourself.

可以使用的类型

enum class ExtFuncFlatType {
    V2,//fragment view
    V3,//fragment view view_binding
    V4,//int to float
    V5,//axx pxx
    V6,//combineDao
    V7,//Dao
}

其中,

  1. V2 扩充针对Fragment,与View 的扩展函数。
  2. V3 与V2 相比,多一个ViewBinding。
  3. V4 对Int 的扩展函数扩充出Float 的扩展函数。
  4. V5 用于ViewModel 的lazy definition。
  5. V6 特殊类型,用于生成将多个liveData 的改动汇成一个MediatorLiveData。其中Dao 是一种tuple。
  6. V7 特殊类型,用于生成Dao 这种特殊的Tuple。

Clone this wiki locally