android - 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 ...
最后,我的目标是动态创建一个按钮网格。
谢谢 !
解决方案
让我从头开始。如果你想要一个包含按钮的网格视图RecyclerView
,无论如何你必须通过 实现它。
创建按钮时,按钮的 id 为 -1。您可以通过以下方式设置一个 id:
b1.id = View.generateViewId()
如果看不到按钮,请检查“是否将按钮添加到 mainView?” 就像是:
mainLayout.addView(b1)
请注意,您必须在克隆constraintLayout
到ConstraintSet
.
然后我认为您的代码将起作用!
推荐阅读
- sql - 在 SQL 中将 CHAR 转换为 int 会导致错误
- python - 通过python json模块更新json文件无法通过discord命令工作
- com - 返回属性时未设置错误对象变量或块变量
- arrays - 在 perl 中,为什么 push 会导致 qr 创建的正则表达式在未放入双引号时被更改?
- javascript - 通过地理编码获取纬度和经度时无法创建可拖动标记
- html - 如何使用纯 CSS 切换侧边栏菜单?
- python - 有人可以帮我了解如何使用 pyModbus 将字符串数据编码到数字显示板上吗?
- android - java.lang.IllegalArgumentException:无法为类创建调用适配器
- spring-mvc - 在启动 tomcat 服务器后的控制台中,我收到错误消息。当我的 spring mvc projetc 部署在 tomcat7 上时
- python - 如何在 Python 中从 netCDF 中提取经度和纬度范围内的数据?