в recyclerview , каким образом можно получить доступ к view ? например у второго layout надо взять его button и сделать clickable false
а в чем проблема в Holder прописать?
думаю харкод будет если прописать в бинд условие и апдейтить его через адаптер
Не совсем понял вас. У вас 5 layout, значит и 5 viewHolder, в которых вы ищете элементы и обрабатываете его
ваш метод не подойдет для этого, холдер должен просто заполнять ячейки без каких либо условий , мне надо через адаптер ему обращаться
что значит обращаться? Для чего? ViewHolder должен зависить от модели. Хотите чтобы ViewHolder что-то перерисовал, то обновите модель просто и обновите data в adapter и все
мне не надо данные обновлять , надо его вью элементам обращаться
Такое нельзя делать, так понятно? ViewHolder занимается только показом информации, все
я и не говорил что можно, Я ясно дал понять что надо получить доступ к его view
Нельзя получить доступ к его view извне. Все через модель
пфф, пожалуйста если не шарите не пишите так, можно получить, просто у меня разные holder по viewType он его показывает , чисто из за него все становиться сложно
наивный, мы же в мире джавы, можем приватное финальное поле изменить
Покажите код, иначе я вас не понимаю, что вы хотите сделать
Все просто , надо сделать button enabled false (не кликаю)
в модели добавьте параметр isButtonEnabled, в bind в ViewHolder делайте в зависимости от этого параметра модели кнопку доступной или нет.
Вариант , но не хотелось бы прописывать отдельную переменную на модельку , спасибо за совет , если ничего из этого не выйдет сделаю так
там же можно вроде через position просто проверить 2 он или нет? или это не то
Ну разные холдеры, а у них свои вьюхи
Если юзать viewType все усложняется а так смело через getView() или getViewHolderByAdapterPosition() мог бы изменить состояние вью
Вот не могу получить доступ к ним через адаптер
Ну проверяй тип ячейки и касти холдер к нужному, и дергай у него байнд метод
Вот это фигню не могу прописать , всегда null возвращает
Что возвращает. Дебаж адаптер и понаставляй брейкпоинтов везде, где нулл может быть.
Методы такие как getView() getViewHolderByAdapterPosition () null возвращают
Это же не методы ресайклер адаптера. Там должны быть типо Holder getItem и int getItemViewType
Холдер прописывается в onCreateViewHolder() и только
Что за "прописывается", показывай весь адаптер
"прописывается" очень не профессионально названо)
зачем ты к словам придираешься?
правильно делаю
Код на работе , имел ввиду что холдер инициализируется в onCreateViewHolder () и возвращает разные view , как вы получили бы доступ к holder ?
на прямую лучше не делать, лучше обновлять конкретную модель в списке и вызывать соответсвующий notify
т.е образно, у 4 вьюхи нужно что-то поменять, sourcelist[4].clickable = false. adapter.notifyItemChanged(4). а в онБинде соотвественно смотреть на все эти поля
В листе только данные, если Я вас правильно понял то в этом случае не сработает [4].clickable = false
clickable это поле а модели данных. На деле там может быть что-то типа isOrderCompleted и т.д. Суть в том, что состояния вью должны зависеть от данных. Не нужно напряямую искать вью
Ради только 1 го view которого нужно на 1-2 секунды сделать не кликабельным и для этого в модельку прописывать отдельную переменную что-то не хочется
та ради Бога. Прекрасного времени препровождения 👍
😂😂😂 спасибо вам ! Ценю , ну если не получится сделаю иначе что-ли)
Обсуждают сегодня