проблема с динамическим добавлением элементов в RecyclerView

recyclerview код:

class recyclerviewedit : RecyclerView.Adapter<recyclerviewedit.MyViewHolder>() {
private var num = 1
private var array = mutableListOf<LinearLayout>()
private var checkarr = mutableListOf<Boolean>()
private var editarr = mutableListOf<String>()
private var checkarrl = mutableListOf<Boolean>()
private var editarrl = mutableListOf<String>()
private var check = mutableListOf<Boolean>()
private var edit = mutableListOf<String>()
private var bool = false
var save : ((list) -> Unit)? = null
fun savelist(){
    check.clear()
    edit.clear()
    for (i in 0..num-1){
        check.add(checkarr[i])
        edit.add(editarr[i])
    }
    println("lists:")
    println(check)
    println(edit)
    save?.invoke(list(namelist = "",listbool = check,liststr = edit))
}
fun plusnum(){
    num+=1
    notifyDataSetChanged()
}
fun listf(x : list){
    bool = true
    checkarr = x.listbool
    editarr = x.liststr
}
class MyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
    val layout = itemView.findViewById<LinearLayout>(R.id.layoutlist)
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
    val itemView =
        LayoutInflater.from(parent.context)
            .inflate(R.layout.layoutlist, parent, false)
    return MyViewHolder(itemView)
}
@SuppressLint("ResourceAsColor")
@RequiresApi(Build.VERSION_CODES.N)
override fun onBindViewHolder(holder: MyViewHolder, i: Int) {
    holder.apply {
        if (bool) {
            layout.checkBox4.isChecked = checkarrl[i]
            layout.edittext4.setText(editarrl[i])
            if (layout.checkBox4.isChecked) {
                var str = SpannableString(layout.edittext4.text)
                str.setSpan(StrikethroughSpan(), 0, layout.edittext4.text.length, 0)
                layout.edittext4.setText(str)
            }
        }
        checkarr.add(layout.checkBox4.isChecked)
        editarr.add(layout.edittext4.text.toString())
        println(checkarr)
        println(editarr)
        layout.checkBox4.setOnClickListener {
            layout.background = ColorDrawable(R.color.black_overlay)
            checkarr[i] = layout.checkBox4.isChecked
            editarr[i] = layout.edittext4.text.toString()
        }
        layout.button4.setOnClickListener {
            layout.visibility = GONE
            checkarr.removeAt(i)
            editarr.removeAt(i)

        }
    }

}

override fun getItemCount(): Int {
    return num
}
}

проблема в том что при добавлении, элемент добавляется в рандомное место в порядке типа может добавится по середине всех элементов или сверху, а должен как вы понимаете снизу, также рандомно какого-то из элементов или у каких то пропадает черточка которая подчеркивает введенный текс(элемент это едиттекст), а после пропажи появляется у другого элемента у которого тоже пропала черточка ранее, я понимаю почему это происходит кривое добавление(заранее добавленные элементы recyclerview), но не понимаю как это можно исправить, и вообще не подозреваю как исправить проблему с чертой


Ответы (0 шт):