Динамическое добавление видов во фрагмент - PullRequest
2 голосов
/ 01 февраля 2020

Я пытаюсь добавить динамические 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()
                }
            }

Любая помощь будет высоко ценится. Заранее спасибо

...