在ANKO中,无法直接重新赋值paddingTop
和Val
属性。但是可以通过创建一个新的View
对象来实现类似的效果。
以下是一个示例代码:
import org.jetbrains.anko.*
class MyActivity : AnkoComponent {
override fun createView(ui: AnkoContext) = with(ui) {
verticalLayout {
val paddingView = view {
backgroundColor = resources.getColor(android.R.color.holo_blue_light)
// 设置paddingTop
setPadding(0, dip(20), 0, 0)
}.lparams(width = matchParent)
// ...
button("Change Padding") {
setOnClickListener {
// 创建一个新的View对象,并设置paddingTop
val newPaddingView = view {
backgroundColor = resources.getColor(android.R.color.holo_blue_light)
setPadding(0, dip(40), 0, 0)
}.lparams(width = matchParent)
// 替换原来的paddingView
paddingView.removeAllViews()
paddingView.addView(newPaddingView)
}
}.lparams(width = wrapContent, gravity = Gravity.CENTER_HORIZONTAL)
}
}
}
在上面的代码中,我们首先创建了一个paddingView
,并设置了paddingTop
属性。然后,在按钮的点击事件中,创建了一个新的newPaddingView
对象,并设置了更大的paddingTop
属性。最后,我们使用removeAllViews()
方法将原来的paddingView
清空,然后使用addView()
方法添加新的newPaddingView
。
通过这种方式,我们实现了重新设置paddingTop
属性的效果。