Я пытаюсь добавить динамические c виды в мои макеты. Таким образом, динамическое представление c, которое должно быть добавлено, является еще одним макетом, содержащим пару правок и других полей. Все работает отлично, но единственная проблема заключается в том, что всякий раз, когда я динамически добавляю новые представления, моё предыдущее содержимое обновляется / очищается, потому что я удаляю все просмотры перед добавлением макета. Поэтому я хочу какое-то решение, с помощью которого я мог бы иметь возможность добавлять представления без необходимости обновления своих уже добавленных элементов или без вызова removeallviews, прежде чем я добавлю свое новое представление.
Ниже приведена моя функция, которую я вызываю, чтобы добавить views
private fun generatenewQuestionview() {
val inflater =
activity?.getApplicationContext()?.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
question1_layout.removeAllViews()
for (i in 0 until viewmodel?.question1Array!!.size) {
var layoutquestion1 = inflater?.inflate(R.layout.dynamic_question_layout, null);
question1add = layoutquestion1.findViewById(R.id.add_more_btn_question1) as ImageView
question1minus =
layoutquestion1.findViewById(R.id.minus_more_btn_question1) as ImageView
question1key = layoutquestion1.findViewById(R.id.question1_et) as EditText
if (i == 0) {
question1minus?.visibility = View.GONE
} else {
question1minus?.visibility = View.VISIBLE
}
layoutquestion1.invalidate()
question1_layout.addView(layoutquestion1)
question1minus?.setOnClickListener()
{
viewmodel?.question1Array!!.removeAt(0)
question1_layout.removeViewAt(i)
//generatenewQuestionview()
}
question1add?.setOnClickListener()
{
generatenewQuestionview()
//viewmodel?.question1Array?.add(HashMap())
//generatenewQuestionview()
// question1_layout.addView(layoutquestion1)
//question1_layout.addView(layoutquestion1)
//addmorequestions()
}
}
Любая помощь будет высоко ценится. Заранее спасибо