我已经定义了这样的kotlin扩展名:
private var View.v: Boolean
get() = this.visibility == View.VISIBLE
set(visible) {
if (visible) {
this.visibility = View.VISIBLE
} else {
this.visibility = View.GONE
}
}
但是,当我尝试使用此字段时会出现一些错误。
private var Int.v: Boolean
get() = find<View>(this).v
set(visible) = find<View>(this).v(visible)
例外是:
Error:(40, 35) Expression 'v' of type 'Boolean' cannot be invoked as a function. The function 'invoke()' is not found
答案 0 :(得分:2)
v
不是该功能。这是一个扩展属性。
执行此操作:
private var Int.v: Boolean
get() = find<View>(this).v
set(visible) {
find<View>(this).v = visible
}
为什么要在视图ID上创建扩展属性?我认为这不是最好的主意。