У меня 2 viewTypes в моем RecyclerView - A и BДобавление просмотров в RecyclerView динамически
А получает это данные от адаптера. B - это пользовательский вид с совершенно другим расположением и делает его собственным веб-сервисом для передачи данных.
Итак, у меня есть 2 ViewHolders (один для A, один для B). Мое требование - показать B только в том случае, если он успешно отобрал все данные с сервера. Итак, изначально я делаю видимость просмотра B в GONE и переуступаю в VISIBLE, когда у него есть данные для показа.
Проблема с этим подходом заключается в том, что разделители (заданные с использованием ItemDecoration) для представлений B отображаются, даже когда контент GONE. Это приводит к большим разрывам в RecyclerView, а B - загрузке. Если они не загружаются, я удаляю B-виды, поэтому эта часть не является проблемой.
Глядя на API ItemDecoration Я не думаю, что есть способ условно показать разделители.
Итак, я ищу способ создания представлений B вне RecyclerView, а затем добавить представление в RecyclerView. Является ли это возможным ? Или есть лучшее решение моей проблемы?
Возможным обходным путем является падение ItemDecoration и вместо этого добавление полей к точкам A и B и сброс поля B с 0 до более высокого значения при получении данных. Я не тестировал этот подход, но я бы хотел его избежать, потому что у меня слишком много типов viewTypes (A и B - всего лишь два из них), и большинство из них - это пользовательские представления, макет которых мне придется изменить.