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

Всем привет! Использую 5 layout , юзаю их через itemViewType

в recyclerview , каким образом можно получить доступ к view ? например у второго layout надо взять его button и сделать clickable false

37 ответов

25 просмотров

а в чем проблема в Holder прописать?

Rustam- Автор вопроса

думаю харкод будет если прописать в бинд условие и апдейтить его через адаптер

Не совсем понял вас. У вас 5 layout, значит и 5 viewHolder, в которых вы ищете элементы и обрабатываете его

Rustam- Автор вопроса

ваш метод не подойдет для этого, холдер должен просто заполнять ячейки без каких либо условий , мне надо через адаптер ему обращаться

что значит обращаться? Для чего? ViewHolder должен зависить от модели. Хотите чтобы ViewHolder что-то перерисовал, то обновите модель просто и обновите data в adapter и все

Rustam- Автор вопроса

мне не надо данные обновлять , надо его вью элементам обращаться

Такое нельзя делать, так понятно? ViewHolder занимается только показом информации, все

Rustam- Автор вопроса

я и не говорил что можно, Я ясно дал понять что надо получить доступ к его view

Нельзя получить доступ к его view извне. Все через модель

Rustam- Автор вопроса

пфф, пожалуйста если не шарите не пишите так, можно получить, просто у меня разные holder по viewType он его показывает , чисто из за него все становиться сложно

наивный, мы же в мире джавы, можем приватное финальное поле изменить

Покажите код, иначе я вас не понимаю, что вы хотите сделать

Rustam- Автор вопроса

Все просто , надо сделать button enabled false (не кликаю)

в модели добавьте параметр isButtonEnabled, в bind в ViewHolder делайте в зависимости от этого параметра модели кнопку доступной или нет.

Rustam- Автор вопроса

Вариант , но не хотелось бы прописывать отдельную переменную на модельку , спасибо за совет , если ничего из этого не выйдет сделаю так

там же можно вроде через position просто проверить 2 он или нет? или это не то

Ну разные холдеры, а у них свои вьюхи

Rustam- Автор вопроса

Если юзать viewType все усложняется а так смело через getView() или getViewHolderByAdapterPosition() мог бы изменить состояние вью

Rustam- Автор вопроса

Вот не могу получить доступ к ним через адаптер

Ну проверяй тип ячейки и касти холдер к нужному, и дергай у него байнд метод

Rustam- Автор вопроса

Вот это фигню не могу прописать , всегда null возвращает

Что возвращает. Дебаж адаптер и понаставляй брейкпоинтов везде, где нулл может быть.

Rustam- Автор вопроса

Методы такие как getView() getViewHolderByAdapterPosition () null возвращают

Это же не методы ресайклер адаптера. Там должны быть типо Holder getItem и int getItemViewType

Rustam- Автор вопроса

Холдер прописывается в onCreateViewHolder() и только

Что за "прописывается", показывай весь адаптер

"прописывается" очень не профессионально названо)

зачем ты к словам придираешься?

правильно делаю

Rustam- Автор вопроса

Код на работе , имел ввиду что холдер инициализируется в onCreateViewHolder () и возвращает разные view , как вы получили бы доступ к holder ?

на прямую лучше не делать, лучше обновлять конкретную модель в списке и вызывать соответсвующий notify

т.е образно, у 4 вьюхи нужно что-то поменять, sourcelist[4].clickable = false. adapter.notifyItemChanged(4). а в онБинде соотвественно смотреть на все эти поля

Rustam- Автор вопроса

В листе только данные, если Я вас правильно понял то в этом случае не сработает [4].clickable = false

clickable это поле а модели данных. На деле там может быть что-то типа isOrderCompleted и т.д. Суть в том, что состояния вью должны зависеть от данных. Не нужно напряямую искать вью

Rustam- Автор вопроса

Ради только 1 го view которого нужно на 1-2 секунды сделать не кликабельным и для этого в модельку прописывать отдельную переменную что-то не хочется

та ради Бога. Прекрасного времени препровождения 👍

Rustam- Автор вопроса

😂😂😂 спасибо вам ! Ценю , ну если не получится сделаю иначе что-ли)

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта