5
我正在使用Anko DSL編寫Android佈局。 當定義一個TextView
,我想讓它的中心對齊,所以我寫了這個:Anko:適用的內部範圍,混淆財產分辨率
verticalLayout {
textView(R.string.txt_greeting).apply {
gravity = Gravity.CENTER_HORIZONTAL // <- this should have changed the alignment
textSize = 20.0f
}
//...
}
但排列並沒有改變。在調試器中,我看到爲LinearLayout
設置了重力,這是TextView
的父項。
更改語句要麼
textView(R.string.txt_greeting).let { it.gravity = Gravity.CENTER_HORIZONTAL }
和
textView(R.string.txt_greeting).apply { [email protected] = Gravity.CENTER_HORIZONTAL }
甚至
textView(R.string.txt_greeting).apply { this.gravity = Gravity.CENTER_HORIZONTAL }
解決了這個問題,從而在原有代碼隱含this
絕對是決心[email protected]
。
爲什麼會發生這種情況?
我誤解Kotlin lambdas中的某些東西嗎?或者它是Kotlin還是Anko中的錯誤?
這看起來像一個錯誤。我在這裏提出了一個問題:https://youtrack.jetbrains.com/issue/KT-10219 –