у всех одинаковый функционал только xml разные.
Проблема в том что мы не знаем будет ли у типа image или нет так как это узнается только в onBindViewHolder. Если мы меняем View.GONE -> View.VISIBLE или наоборот, то recyclerview месит все (например вновь использует view где был View.GONE на view где должен быть View.VISIBLE).
Если мы оцениваем каждый элемент и ставим View.GONE или View.VISIBLE каждый раз в onBindViewHolder то получается месиво (моргает всякий раз при быстром скроллинге) -> некрасиво смотрится.
Третий вариант -> использовать разные типы ViewHolder (horizontal_view, full_view, vertical_view + тоже самое только ..._no_image) и xml удвоит количество кода.
PS: В ios есть такая функция prepareForReuse которая до появления item в RecyclerView (tableview) может менять layout.
Есть ли что то в андроид?
ты делаешь if (что-то) setVisibility(GONE), а надо if (что-то) setVisibility(GONE); else setVisibility(VISIBLE); вот и весь reuse :)
Обсуждают сегодня