элементов списка ресайклервью, тобишь 3 разных класса ViewBinding.
                  
                  
                  Я могу в котлин прописать следующую конструкцию:
                  
                  
                        if (this is ListFirstBinding || this is ListSecondBinding || this is ListThirdBinding) {
                  
                  
                              with(this) {
                  
                  
                                 
                  
                  
                              }
                  
                  
                          }
                  
                  
                  чтобы она работала?
                  
                  
                  
                  
                  
                  если нет, какие у меня есть альтернативы?
                  
                  
                  
                  
                  
                  у меня есть в файлах вёрстки элементы с одинаковыми названиями и вместо 3 одинаковых кусков кода для их инициализации я хотел бы 1 использовать кусок кода. Но пример, который я выше описал, не сработал, а альтернатива не приходит в голову пока
                  
                  
                
adapter viewType?
но с вьютайп мы вызываем метод конкретно у того или иного вьюхолдера, а не метод адаптера ресайклер вью, который ждёт на входе один из 3 типов классов
Общее поведение для разных экземпляров VB не уверен, что так можно. Но можно извратиться. Сделать общую функцию, куда предавать нужные вью и данные для них.
понял, спасибо, значит не буду сейчас над этим голову ломать)
Кроме того, если общие вью в разных лэйаутах вынести в include, то для них сгенерится свой vb. Вот его можно использовать для единообразного обновления этих вью.
А если просто наследование? И описать инициализацию в базовом классе вьюхолдера?
наследование тут не поможет по той причине, что у всех трёх вьюхолдеров разные ViewBinding классы передаются и в них нет переиспользованных элементов например через include
Ну а те вью которые инитятся одним куском кода имеют один и тот же тип?
да
Так в базовом классе опиши метод, который принимает это вью. Или задай абстракт проперти/метод для получения этой вью и через неё, а в наследниках просто определишь какое вью брать
Спасибо
Обсуждают сегодня