169 похожих чатов

Подскажите пожалуйста один момент У меня есть 3 разных вёрстки для

элементов списка ресайклервью, тобишь 3 разных класса ViewBinding.
Я могу в котлин прописать следующую конструкцию:
if (this is ListFirstBinding || this is ListSecondBinding || this is ListThirdBinding) {
with(this) {

}
}
чтобы она работала?

если нет, какие у меня есть альтернативы?

у меня есть в файлах вёрстки элементы с одинаковыми названиями и вместо 3 одинаковых кусков кода для их инициализации я хотел бы 1 использовать кусок кода. Но пример, который я выше описал, не сработал, а альтернатива не приходит в голову пока

11 ответов

6 просмотров

adapter viewType?

Mikhail-Alpeev Автор вопроса

но с вьютайп мы вызываем метод конкретно у того или иного вьюхолдера, а не метод адаптера ресайклер вью, который ждёт на входе один из 3 типов классов

Общее поведение для разных экземпляров VB не уверен, что так можно. Но можно извратиться. Сделать общую функцию, куда предавать нужные вью и данные для них.

Mikhail-Alpeev Автор вопроса

понял, спасибо, значит не буду сейчас над этим голову ломать)

Кроме того, если общие вью в разных лэйаутах вынести в include, то для них сгенерится свой vb. Вот его можно использовать для единообразного обновления этих вью.

А если просто наследование? И описать инициализацию в базовом классе вьюхолдера?

Mikhail-Alpeev Автор вопроса

наследование тут не поможет по той причине, что у всех трёх вьюхолдеров разные ViewBinding классы передаются и в них нет переиспользованных элементов например через include

Ну а те вью которые инитятся одним куском кода имеют один и тот же тип?

Mikhail-Alpeev Автор вопроса

да

Так в базовом классе опиши метод, который принимает это вью. Или задай абстракт проперти/метод для получения этой вью и через неё, а в наследниках просто определишь какое вью брать

Mikhail-Alpeev Автор вопроса

Спасибо

Похожие вопросы

Обсуждают сегодня

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
Кто-нибудь знает, как считается нагрузка на цпу? И что такое вообще "нагрузка на цпу"? вот, например, есть у цпу какой-то clock, настроенный на 3 ГГц --- Что значит "нагрузка...
Toideng
15
Можно ли написать свою библиотеку "socket" на каком либо языке ассемблера с нуля не используя сишние библиотеки ? Или это самоубийство ?
123🪐
15
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
{!! $modx->runSnippet( 'multiTV',[ 'tvName'=>'slider-main1', 'docid'=>'[*id*]', 'tplConfig'=>'', 'display'=>'4', 'offset'=>'0', 'rows'=>'all', 'ra...
Роман С
4
Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
PopOs or Linux Mint for a noob starter? Also do you have any articles on how to safely dual boot Windows 10 alongside it? I've heard there are a bunch problems that can occur...
Senator
14
Карта сайта