hot*_*key 5 android kotlin anko
我正在使用Anko DSL编写Android布局.在定义a时TextView,我想让它居中对齐,所以我写了这个:
verticalLayout {
textView(R.string.txt_greeting).apply {
gravity = Gravity.CENTER_HORIZONTAL // <- this should have changed the alignment
textSize = 20.0f
}
//...
}
Run Code Online (Sandbox Code Playgroud)
但是调整并没有改变.在调试器中我看到的重力被设置为LinearLayout这是TextView"父.
将语句更改为
textView(R.string.txt_greeting).let { it.gravity = Gravity.CENTER_HORIZONTAL }
Run Code Online (Sandbox Code Playgroud)
和
textView(R.string.txt_greeting).apply { this@apply.gravity = Gravity.CENTER_HORIZONTAL }
Run Code Online (Sandbox Code Playgroud)
乃至
textView(R.string.txt_greeting).apply { this.gravity = Gravity.CENTER_HORIZONTAL }
Run Code Online (Sandbox Code Playgroud)
解决了这个问题,因此在原始代码隐式this中肯定是解决了this@verticalLayout.
为什么会这样?
我是否误解了Kotlin lambdas中的某些内容,还是Kotlin或Anko中的错误?
| 归档时间: |
|
| 查看次数: |
281 次 |
| 最近记录: |