生成动态约束布局||无法创建视图列表

时间:2020-05-17 20:55:56

标签: android kotlin android-constraintlayout

为从远程数据库接收的表单创建动态布局。

这是我的方法:

        val constraintLayout: ConstraintLayout = findViewById(R.id.constraintLayout)
        val constraintSet = ConstraintSet()
        var createdViews: ArrayList<View> = ArrayList()

        //parse fields to appropiate view
        formFields.forEach{
            var view: View? = null
            when(it.type) {
                "textField" -> {
                    view = EditText(this)
                    //view.hint = it.hint
                }
                "checkBox" -> {
                    view = CheckBox(this)
                    //view.isChecked = it.isChecked
                }
            }
            view!!.tag = it.id
            view.visibility = View.VISIBLE
            views.add(view)
            constraintLayout.addView(view)

        }


        //set constraints for these views
        var previousItem: View? = null
        constraintSet.clone(constraintLayout);
        createdViews!!.forEach{
            if (previousItem == null) {
                constraintSet.connect(
                    it.id,
                    ConstraintSet.TOP,
                    ConstraintSet.PARENT_ID,
                    ConstraintSet.TOP
                )
            } else {
                constraintSet.connect(
                    it.id,
                    ConstraintSet.TOP,
                    previousItem!!.id,
                    ConstraintSet.BOTTOM
                )
            }
            previousItem = it
        }
        constraintSet.applyTo(constraintLayout)

我无法创建视图列表,因为var createdViews:ArrayList = ArrayList()似乎不起作用 也可能有更好的方法来像这样以编程方式创建表单。我将很乐意提供任何建议

0 个答案:

没有答案