Как добавить вид в существующий макет с помощью Anko - PullRequest
0 голосов
/ 25 июня 2019

Мне нужно добавить новый вид к существующему verticalLayout{} во время выполнения. Это работает, если я использую стандартные компоненты Android и добавляю их следующим образом: layoutName.addView(view). Но когда я пытаюсь добавить anko views, я получаю исключение:

E / AndroidRuntime: FATAL EXCEPTION: main Процесс: ar.com.testapp, PID: 26644 java.lang.IllegalStateException: указанный дочерний элемент уже имеет родителя. Сначала вы должны вызвать removeView () у родителя ребенка.

Как это можно сделать?

val attributeLayout = verticalLayout{
     id = attributeLayoutId
}
val typeSpinner = spinner{}
typeSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener{
     override fun onNothingSelected(parent: AdapterView<*>?) {}
     override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
     attributeLayout.addView(                                     
          themedCheckBox(R.style.EditText){
                text = it.name
                isChecked = true                                            
          }
     )
}
...