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
}
//...
}
をしかし、アライメントが変化しませんでした。デバッガでは、TextView
の親であるLinearLayout
に重力が設定されていることがわかりました。
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 –