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)
}
}
}
marginTop
或 paddingTop
都不起作用,但是 IDE 在输入 margin
或 padding
时会提示它。简单地 padding
或 margin
不会提示错误,但我只想在组件的最顶部制作 space 。
我认为你需要改变:
verticalLayout {
...
lparams {
...
}
}
改为阅读:
verticalLayout {
...
}.lparams {
...
}
我以前没有使用过 Anko 库,但是上面的更改来自他们 GitHub 项目中的评论:https://github.com/Kotlin/anko/issues/392#issuecomment-304659964
使用topPadding
代替paddingTop
我想将 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)
}
}
}
marginTop
或 paddingTop
都不起作用,但是 IDE 在输入 margin
或 padding
时会提示它。简单地 padding
或 margin
不会提示错误,但我只想在组件的最顶部制作 space 。
我认为你需要改变:
verticalLayout {
...
lparams {
...
}
}
改为阅读:
verticalLayout {
...
}.lparams {
...
}
我以前没有使用过 Anko 库,但是上面的更改来自他们 GitHub 项目中的评论:https://github.com/Kotlin/anko/issues/392#issuecomment-304659964
使用topPadding
代替paddingTop