Исключение - PullRequest
       8

Исключение

0 голосов
/ 29 ноября 2018

Получение большого числа исключений, которые я не могу воспроизвести следующим образом: -

Fatal Exception: java.lang.IllegalArgumentException: view is not a
child, cannot hide androidx.cardview.widget.CardView{5dd439c V.E...C..
......I. 20,-228-680,-78} 
at androidx.recyclerview.widget.b.e(ChildHelper.java:352) 
at androidx.recyclerview.widget.RecyclerView$p.b(RecyclerView.java:6393)

Нет ссылки из моего источника.Но, используя журнал Crashlytics, я думаю, что знаю приблизительную область проблемы.Ряд адаптеров утилизатора представляет собой очень простую компоновку с видом на карту в корне и относительной компоновкой как дочерняя.Что может быть причиной этого исключения?

Редактировать: Мой адаптер

internal class AnalyzerAdapter(private val fragment: AnalyzerFragment,
                               private val context: Context) : RecyclerView.Adapter<AnalyzerAdapter.Companion.ViewHolder>() {
    private val entries = ArrayList<AnalyzerData>()
    override fun onCreateViewHolder(viewGroup: ViewGroup, viewType: Int): ViewHolder {
        val parent = LayoutInflater.from(context).inflate(R.layout.analyzer_row, viewGroup, false)
        return ViewHolder(parent)
    }

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        val entry = entries[position]
        holder.tvSize.text = "title"
        holder.tvDetails.text = "details"
        val type = getItemViewType(position)
        holder.itemView.setOnClickListener {
            fragment.onListClick(type)
        }
        when (type) {
            ...
        }
    }

    override fun getItemViewType(position: Int): Int {
        return entries[position].dataType
    }

    override fun getItemCount(): Int {
        return entries.size
    }

    fun addEntry(entry: AnalyzerData) {
        entries.add(entry)
        notifyItemInserted(entries.size - 1)
    }

    fun editEntry(entry: AnalyzerData, position: Int) {
        entries[position] = entry
        notifyItemChanged(position)
    }


    fun initEntries(list: List<AnalyzerData>) {
        entries.clear()
        entries.addAll(list)
        notifyDataSetChanged()
    }

    companion object {

        internal class ViewHolder(parent: View) : RecyclerView.ViewHolder(parent) {
            var ivIcon: ImageView = parent.findViewById(R.id.analyzer_icon)
            var tvTitle: TextView = parent.findViewById(R.id.analyzer_title)
            var tvDetails: TextView = parent.findViewById(R.id.analyzer_details)
            var tvSize: TextView = parent.findViewById(R.id.analyzer_size)
        }
    }
}
...