Во всех гайдах, которые я когда-либо читал, а также работая над каким-либо продуктом была следующая логика работы с RecyclerView:
1. В XML размечается дефолтный RecyclerView
2. В Activity/Fragment Создается инстанс адаптера, в конструктор передается колбек на итем клик
3. Во Fragment/Activity(вью (из MVVM/MVP)) recycler настраивается в отдельном методе( например задается дивайдеры, адаптер, EndlessScrollListener и прочее)
В итоге получается, что вьюха получается перегруженной и лишний раз нарушается SRP.
А что если создать класс MyRecycler, унаследовать его от Recycler и произвести его настройку внутри, создавать адаптер непосредственно внутри класса Recycler и в разметке использовать MyRecyclerView. Потом непосредственно работать с MyRecycler, который будет делегировать работу адаптеру. Адаптер же является частью ресайкла. Какие могут быть подводные камни данного подхода?
При таком подходе код получается более связным и fragment/activity можно
Не совсем понимаю почему Вы считаете, что первый способ нарушает SRP, а второй - нет.
Если докапаться то ваше решение тоже не соответствует SOLID. Адаптер жестко привязан, лайоут менеджер тоже. Решение так себе...
Обсуждают сегодня