#android #kotlin
#Android #котлин
Вопрос:
В Android / Kotlin я хотел бы динамически создавать две кнопки и добавлять ограничения между обоими (start / start и top / bottom).
Я могу ограничить две статические кнопки :
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 для обоих …
В конце концов, моя цель — динамически создать сетку кнопок.
Спасибо!
Комментарии:
1.
View
по умолчанию у s нет идентификаторов. Вам нужно назначить им по одной при их создании.
Ответ №1:
Позвольте мне начать с конца. если вам нужен вид сетки, содержащий кнопки, вы в любом случае должны реализовать его с помощью RecyclerView
.
Когда вы создаете кнопку, идентификатор кнопки равен -1. Вы можете ввести в него идентификатор с помощью:
b1.id = View.generateViewId()
Если вы не видите кнопок, проверьте «Добавляете ли вы кнопки в MainView?» что-то вроде:
mainLayout.addView(b1)
Будьте осторожны, вы должны добавить представление перед клонированием constraintLayout
ConstraintSet
.
Тогда, я думаю, ваш код будет работать!