如何在Kotlin android的扩展函数中访问同名的类成员
我是新的android的kotlin。 我想访问在扩展函数中具有相同名称的类成员。 例如:
var visibility = null //class level variable //EXTENSION FUNCTION fun ProgressBar.changeVisibleState(flag: Boolean) { if (flag) visibility = View.VISIBLE else visibility = View.INVISIBLE }
我如何访问changeVisibleState
方法中的visibility
。
使用“ this@Hello
”标签,您可以访问Hello
的属性而不是ProgressBar
。
class Bye { var visibility: Int = 0 //class level variable } class Hello { var visibility: Int = 0 //class level variable fun Bye.changeVisibleState(flag: Boolean) { //access Bye's prop visibility = if (flag) 1 else 2 //access Hello's prop this@Hello.visibility = 12 } }
你可以使用this
操作符。
class Hello { var visibility: Int = 0 //class level variable //EXTENSION FUNCTION fun ProgressBar.changeVisibleState(flag: Boolean) { if (flag) this@Hello.visibility = View.VISIBLE else this@Hello.visibility = View.INVISIBLE } }
- Kotlin:“synchronized”使编译器不能确定变量的初始化
- 什么是Iterable的行为#all&为什么Kotlin Char :: class.java!= char.javaClass
- Android使用另一个活动保存的信息创建listitem / object
- 与Android的Kotlin:基类和Kotlin Android扩展
- 找不到类databinding.FragmentBinding
- 未解决的参考:数据绑定
- AndroidStudio / Kotlin – 未解决的参考:ReadWriteProperty – Kotlin版本1.0.0-beta-1038
- 无法使用Gradle将Android Kotlin Project上传到Fabric Beta
- 在活动之间转换时,视图的高度为0
- Kotlin kapt和android构架组件失败
- Kotlin inline关键字导致IntelliJ IDEA覆盖率报告0%