【发布时间】:2020-12-01 03:12:12
【问题描述】:
我在我的应用活动中使用此扩展功能进行视图绑定:
inline fun <T : ViewBinding> Activity.viewBinding(crossinline bindingInflater: (LayoutInflater) -> T) = lazy(NONE) {
bindingInflater.invoke(layoutInflater).also { setContentView(it.root) }
}
我的 BaseActivity 扩展自 AppCompatActivity。我应该将扩展函数更改为 AppCompatActivity.viewBinding... 而不是 Activity.viewBinding... 吗?
有什么区别吗?
【问题讨论】:
-
为此,您的代码似乎应该适用于
Activity。AppCompatActivity继承自Activity,所以这个扩展函数也适用于扩展AppCompatActivity的任何东西。 -
它工作正常,是的,但使用 AppCompatActivity 会更合适吗?还是没关系?
-
这里,没关系。如果您正在做一些需要
AppCompatActivity独有的功能或属性的事情,那么您需要将您的扩展功能放在AppCompatActivity上。