在Android / Kotlin中,我想动态创建两个按钮并在两者之间添加约束(开始/开始和顶部/底部)。
我可以约束两个静态按钮:
val mainLayout = findViewById<ConstraintLayout>(R.id.constraintLayout)
val constraintSet = ConstraintSet()
constraintSet.clone(constraintLayout)
constraintSet.connect(b1.id, ConstraintSet.START, b2.id, ConstraintSet.END, 0)
constraintSet.connect(b1.id, ConstraintSet.TOP, b2.id, ConstraintSet.BOTTOM, 0)
constraintSet.applyTo(mainLayout)
但不是动态创建它们时:屏幕上什么也没有出现。
在动态情况下,我注意到两个的ID都为-1 ...
最后,我的目标是动态创建按钮网格。
谢谢!
答案 0 :(得分:1)
让我从头开始。如果您想要一个包含按钮的网格视图,则无论如何都必须通过RecyclerView
来实现。
创建按钮时,按钮的ID为-1。您可以通过以下方式为此设置ID:
b1.id = View.generateViewId()
如果看不到按钮,请选中“是否在mainView中添加了按钮?”像这样:
mainLayout.addView(b1)
请注意,在将constraintLayout
克隆到ConstraintSet
之前,必须先添加视图。
然后,我认为您的代码可以使用!