首页 > 解决方案 > Android/Kotlin - 创建两个按钮并应用约束

问题描述

在 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)

但不是在动态创建它们时:屏幕上没有任何内容。

在动态情况下,我注意到两者都为 -1 的 id ...

最后,我的目标是动态创建一个按钮网格。

谢谢 !

标签: androidkotlin

解决方案


让我从头开始。如果你想要一个包含按钮的网格视图RecyclerView,无论如何你必须通过 实现它。

创建按钮时,按钮的 id 为 -1。您可以通过以下方式设置一个 id:

b1.id = View.generateViewId()

如果看不到按钮,请检查“是否将按钮添加到 mainView?” 就像是:

mainLayout.addView(b1)

请注意,您必须在克隆constraintLayoutConstraintSet.

然后我认为您的代码将起作用!


推荐阅读