ANKO paddingTop - Val 无法重新赋值

ANKO paddingTop - Val cannot be reassigned

我想将 paddingTop 放在我的 verticalLayout 上,但它会提示警告 无法重新分配 Val。我假设我以错误的方式解决了这个问题,但是在线资源似乎很少。

下面是我的 AnkoComponent:

class MainActivityUi : AnkoComponent<MainActivity> {
override fun createView(ui: AnkoContext<MainActivity>) = with(ui) {
    verticalLayout {
        textView {
            text = "Input"
            textColor = Color.BLACK
            textAlignment = View.TEXT_ALIGNMENT_CENTER
        }
        textView {
            text = "Output"
            textColor = Color.BLACK
            textAlignment = View.TEXT_ALIGNMENT_CENTER
        }
        linearLayout {
            button {

                text = "0"
            }.lparams(width = wrapContent, height = matchParent) {
                gravity = Gravity.CENTER
                weight = 5f
                margin = dip(3)
            }
            button {
                text = "1"
            }.lparams(width = wrapContent, height = matchParent) {
                gravity = Gravity.CENTER
                weight = 5f
                margin = dip(3)
            }
        }
        linearLayout {
            button {
                text = "/"
            }.lparams(width = wrapContent, height = matchParent) {
                gravity = Gravity.CENTER
                weight = 5f
                margin = dip(3)
            }
            button {
                text = "*"
            }.lparams(width = wrapContent, height = matchParent) {
                gravity = Gravity.CENTER
                weight = 2.5f
                margin = dip(3)
            }
            button {
                text = "-"
            }.lparams(width = wrapContent, height = matchParent) {
                gravity = Gravity.CENTER
                weight = 2.5f
                margin = dip(3)
            }
            button {
                text = "+"
            }.lparams(width = wrapContent, height = matchParent) {
                gravity = Gravity.CENTER
                weight = 2.5f
                margin = dip(3)
            }
        }
        linearLayout {
            button {
                text = "base10"
            }.lparams(width = matchParent, height = wrapContent){
                margin = dip(3)
            }
        }
        linearLayout {
            button {
                text = "calculate!"
            }.lparams(width = matchParent, height = wrapContent){
                margin = dip(3)
            }
        }
        lparams { //This is the culprit!
            paddingTop = dip(200)
        }
    }
}

marginToppaddingTop 都不起作用,但是 IDE 在输入 marginpadding 时会提示它。简单地 paddingmargin 不会提示错误,但我只想在组件的最顶部制作 space 。

我认为你需要改变:

verticalLayout {
    ...
    lparams {
        ...
    }
}

改为阅读:

verticalLayout {
    ...
}.lparams {
    ...
}

我以前没有使用过 Anko 库,但是上面的更改来自他们 GitHub 项目中的评论:https://github.com/Kotlin/anko/issues/392#issuecomment-304659964

使用topPadding代替paddingTop